Verify SQLite backups and restores
This commit is contained in:
@@ -10,6 +10,12 @@ This project uses SQLite at `data/leistungsbilanz.db` and Drizzle migrations in
|
||||
npm run db:backup
|
||||
```
|
||||
|
||||
The command uses SQLite's online backup API, so committed WAL changes are included
|
||||
even while the application is running. It opens the resulting standalone database
|
||||
and requires both `PRAGMA integrity_check` and `PRAGMA foreign_key_check` to pass.
|
||||
Database backups are operational recovery files and remain separate from the future
|
||||
user-visible project version history.
|
||||
|
||||
2. Apply pending schema migrations (includes `0008_circuit_first_model` and the additive
|
||||
`0009_project_device_circuit_fields` transition)
|
||||
|
||||
|
||||
@@ -328,6 +328,9 @@ Implemented foundation:
|
||||
- SQLite foreign-key enforcement is enabled explicitly for every context
|
||||
- the distribution-board repository receives its database dependency explicitly
|
||||
- distribution-board setup has real in-memory SQLite commit and rollback coverage using production migrations
|
||||
- database backups use SQLite's online backup API and include committed WAL data
|
||||
- every backup is opened independently and checked for integrity and foreign-key violations
|
||||
- an integration test restores the backup into a separate database and verifies its snapshot contents
|
||||
- circuit-device-row creation/deletion and reserve-state changes use an explicitly injected transaction store
|
||||
- a new circuit and all of its initial device rows use the same transaction store
|
||||
- device-row moves, reserve-state updates and optional target creation share one transaction
|
||||
|
||||
Reference in New Issue
Block a user