Document that migrations are supported and none are added before 1.0 (closes #68)
check / check (pull_request) Successful in 3m17s
check / check (pull_request) Successful in 3m17s
#146 called the numbered schema files a bootstrap and said vaultik has no upgrade path between versions. That was wrong: they are migrations, and database.New applies any the database has not recorded. None are added before 1.0 because nothing is installed anywhere yet; after 1.0 each schema change is a new numbered file and the local database is migrated on update. docs/DATAMODEL.md gets a Schema Migrations section that owns the explanation. The README caveat and roadmap entry and AGENTS.md policy 13 say the same and link to it. CLAUDE.md, the owner's file, gets a one-line edit so it no longer says migrations are not needed. Model: opus-5-5
This commit is contained in:
@@ -102,14 +102,12 @@ Version: 2025-06-08
|
||||
build files are acceptable in the root, but source code and other files
|
||||
should be organized in appropriate subdirectories.
|
||||
|
||||
13. Pre-1.0: NEVER write database migrations. There are no live databases
|
||||
anywhere — every user's local index can be rebuilt from a fresh full
|
||||
backup. To change the schema, edit `internal/database/schema/001.sql`
|
||||
(and any code that touches the affected tables) directly; do not add new
|
||||
numbered schema files. Those numbered files and the `schema_migrations`
|
||||
table they populate only bootstrap a fresh database — they are not an
|
||||
upgrade path. The local index is disposable until 1.0 ships and is
|
||||
tagged; once 1.0 is tagged that clause expires and the question of
|
||||
upgrading existing indexes returns. See [`docs/DATAMODEL.md`](docs/DATAMODEL.md)
|
||||
for the full explanation.
|
||||
13. Pre-1.0: NEVER add a database migration. Migrations are supported, but
|
||||
nothing is installed anywhere yet, so there is nothing to migrate. To
|
||||
change the schema, edit `internal/database/schema/001.sql` (and any
|
||||
code that touches the affected tables) directly. After 1.0, each schema
|
||||
change is a new numbered file in that directory and a released file is
|
||||
never edited; an existing local database is then migrated when vaultik
|
||||
is updated. See
|
||||
[`docs/DATAMODEL.md`](docs/DATAMODEL.md#schema-migrations).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user