I’ve installed Crimson flashing the image. I had previously saved a copy of /home/purism/.local/share/evolution/addressbook/system/contacts.db on the SD card.
After installation I overwrote the contacts.db file with the previously saved one, but when I open the “Contacts” application nothing appears, it is completely empty.
When doing the restore (or the original save for that matter!), you should ensure that no process is accessing the contacts.db file before you do that. If doing it “live”, that will involve killing the appropriate process (which is not ideal).
When I upgraded from amber to byzantium I took the same basic approach as what you have done and it did work.
As an aside, as part of “overwriting” the contacts.db file, I would definitely make a copy of the file as it is after the reflash, just in case things go pear-shaped.
Also, given that you didn’t take care to kill a process (my assumption), I would suggest a reboot of the phone. Have you done that subsequently?
PS If you are handy with SQL, there can be merit in having the sqlite3 command installed on the phone, so that you can sanity check the contents of .db files.
Note that even if you did this properly i.e. killed the process that is using the database before overwriting the database, you would still likely have to reboot - because most likely you won’t have an easy way to restart the process.
If one’s methodology is “kill random process and overwrite database” then overall it is a slightly risky approach and you can’t really be sure whether there are non-obvious consequences, unless having studied all the relevant source code in detail, and so a reboot afterwards seems like the safest thing to do, as if you are telling the phone: hey, forget that I just did that.
Ideally we get to a point where there is a clean and safe way to save and restore contacts (et al) around a reflash.