|
|
|
|
|
by Hytak
568 days ago
|
|
What I think is that you are confusing the schema_version and user_version pragmas. user_version is what you would use to keep track of which migrations have run and it can be safely updated (or not updated) without corrupting the database. schema_version is the thing that sqlite updates automatically on every single change to the schema. sqlite uses schema_version to make sure that prepared statements don't accidentally run on a different schema than what they are prepared for. schema_version is also the thing that rust-query uses to make sure that the schema hasn't changed since the application started. You can see now that you can not trick rust-query without also tricking sqlite (and risking corruption if there was a prepared statement). If you shutdown the application before you change the schema_version, then rust-query will just see that the schema is different when the application is started. Because rust-query always reads the full schema and compares it to the expected schema on application start! |
|