Currently the jobs database is stored using SQLite (jobs.db). This a good design choice considering performance and storage efficiently but it also makes it impossible to apply incremental updates using a text diff to the database. This is especially important if the database is maintained by several people, e.g. in a git repository.
I'm proposing the following feature:
- Use a xml file (e.g. jobs) as the primary storage and use SQLite (jobs.db) as an intermediary database (cache)
- When the application is started, check whether the cache is up-to-date. If lastmodifieddate(jobs.xml) > lastmodifieddate(jobs.db), drop the jobs.db and reimport the jobs.xml
- Internally work with the SQLLite database as of now
- When the application is closed, export all jobs from the the cache into the jobs.xml. Touch both files (jobs.xml, jobs.db) so that they have the same lastmodifieddate.
Maybe this could be implemented as an application setting:
[x] Synchronize jobs database with jobs.xml
This feature would allow several parties to collaborate on the database. Thank you.
As a temporary workaround, would it be possible to add a new command line argument import: /import=FILENAME Starts Ketarin and imports the specified jobs xml file.