forked from github-mirrorer/taskchampion-sync-server
The core crate calls `get_client` and verifies the `latest_version_id` before it invokes `add_version`. With the SQLite backend, transactions lock the entire database, so these two queries cannot be interleaved with any changes to the `latest_version_id` and there's no possibility of incorrect updates. With Postgres (#129) the effect is similar: the read performed by `get_client` locks that row and prevents other transactions from writing to it. However, the storage trait should not rely on this behavior -- `add_version` should verify that it is adding a new version on top of the correct parent version.
taskchampion-sync-server-storage-sqlite
This crate implements a SQLite storage backend for the
taskchampion-sync-server-core.