v0.0.2
This commit is contained in:
1 parent
c7d09077fc
commit
f813441bf0
45 files changed
+938
-334
No files matched your search
+6
-17
@@ -1,8 +1,6 @@
|
||||
# Fresh installation and explicit Python import
|
||||
|
||||
Version **0.0.1** starts with a clean installation. It does not update an old
|
||||
schema or move existing backup files during startup. Importing data from the
|
||||
Python/TypeScript application is a separate, explicit operation.
|
||||
Version **0.0.2** initializes clean installations and automatically migrates the supported Rust 0.0.1 schema to the current schema at startup. It does not import or rewrite a Python/TypeScript installation automatically. Importing data from the Python/TypeScript application remains a separate, explicit operation.
|
||||
|
||||
## Choose one installation path
|
||||
|
||||
@@ -23,22 +21,13 @@ server**. Starting the server first creates a database, and the importer will
|
||||
refuse to overwrite or merge it. Use a different new destination if a database
|
||||
already exists; do not delete a database merely to bypass this check.
|
||||
|
||||
## Startup never upgrades an existing database
|
||||
## Startup migration policy
|
||||
|
||||
Startup accepts an existing database only when it has the current `schema_info`
|
||||
marker, supported format version, required tables and columns, valid integrity,
|
||||
and the expected user/settings records. An older Python schema, an earlier Rust
|
||||
work-in-progress schema, an unknown version, or a pre-existing empty database file
|
||||
is rejected with instructions to select a fresh destination or use the explicit
|
||||
Python importer. No `ALTER TABLE`, persistent pre-upgrade snapshot, migration
|
||||
journal, automatic import, or backup relocation is performed.
|
||||
Startup accepts the current schema and the supported Rust 0.0.1 schema. Before creating storage locks or secrets, the server performs a read-only preflight against a private temporary copy of the database, including committed WAL content.
|
||||
|
||||
Before creating storage locks or secrets, the server performs a read-only
|
||||
preflight. SQLite inspects a private temporary copy of the database and its WAL
|
||||
or rollback journal, so opening an incompatible database cannot create a source
|
||||
`-shm` file. The temporary inspection copy is removed afterwards. The schema is
|
||||
checked again while the server holds its storage locks. Existing current records
|
||||
and file paths are left unchanged.
|
||||
After storage locking, a Rust schema v1 database is upgraded transactionally to schema v2 by adding `default_routeros_username` and `default_routeros_password` and advancing `schema_info.schema_version`. The resulting schema is validated before the service starts. A current schema is left unchanged.
|
||||
|
||||
Python/TypeScript schemas, unsupported Rust work-in-progress schemas, unknown versions, and pre-existing empty database files are rejected. They are never imported automatically.
|
||||
|
||||
## Import command
|
||||
|
||||
|
||||
Reference in new issue
Block a user