I want to experiment with a completely isolated parallel version of darktable, besides my regular install. I want to work on the same Linux box and filesystem.
I have compiled a new darktable binary and execute using:
Turn off writing xmp for one version. THat might help avoid accidentally overwriting your xmp with something you didn’t want and making it so you can/t read it in the older version…so likely turn off for the test version…
So does it mean that the database contains what is there in the xmp file?
What happens when an update from the master branch corrupts the database file? (it has happened to me and I had restored from backup and now I have stopped upgrading from the master branch) Is there a way to repair the database?
How to backup DT so by restoring it bring backs the previous version? Any script for this purpose?
Database is backup at the interval you specify in the preferences so you may have several copies… also i am only suggesting this for your test version…
For example I have lots of options for backup in addition to any I might set up another way…
I actually version my xmp so I can go back to any edited version that I might need to if anything ever gets messed up…
You can simply copy any of the backup library files over library.db to restore that version.
If you are running 4.2, and want to try master, the first time you launch master will create library.db-pre-4.3.0. If you don’t like master, you can restore darktable 4.2, and copy library.db-pre-4.3.0 to library.db to restore the 4.2 version of the database.
There is no way to ‘repair’ the database: if, while on master, you try ‘super new module’ which is not present in 4.2, there is no way 4.2 would be able to process that module. If your database is corrupted some other way (say, data goes missing), then its integrity is compromised anyway.
The library.db-snp-yyyyMMddhhmmss files (like library-snp-20230123123456) are timestamped copies, you can always revert to those (the timestamp has the format yyyy (4-digit year) MM (2-digit month, like 01 for January) dd (2-digit day of month, e.g. 03 for 3rd) hhmmss (2-digit hours, like 00 for 12 AM, 03 for 3 AM, 12 for 12 PM, 15 for 3 PM; 2-digit minutes, 2-digit seconds).