Commit Graph

4 Commits

Author SHA1 Message Date
clawbot
49398c1f0f Change schema_migrations version from TEXT to INTEGER
All checks were successful
check / check (push) Successful in 1m42s
2026-03-19 23:07:06 -07:00
clawbot
2074571a87 Move bootstrap migration INSERT into 000.sql
Per review: the SQL file should be self-contained. 000.sql now
includes both the CREATE TABLE and the INSERT OR IGNORE for recording
its own version. Removed the separate INSERT from Go code in
bootstrapMigrationsTable().
2026-03-19 23:07:06 -07:00
clawbot
2cabd48a8a Remove backwards compat code: no installed base pre-1.0
- Simplify bootstrapMigrationsTable to just check table existence and
  apply 000.sql if missing — no legacy DB detection
- Remove ensureBootstrapVersionRecorded (legacy backfill path)
- Remove applyBootstrapMigration (separate helper, now inlined)
- Remove TestBootstrapMigrationsTable_ExistingTableBackwardsCompat
- Simplify 000.sql header comment
2026-03-19 23:07:06 -07:00
user
48926747a0 Move schema_migrations table creation from Go code into 000.sql
The schema_migrations table definition now lives in
internal/database/schema/000.sql instead of being hardcoded as an
inline SQL string in database.go. A bootstrap step checks
sqlite_master for the table and applies 000.sql when it is missing.
Existing databases that already have the table (created by older
inline code) get version 000 back-filled so the normal migration
loop skips the file.

Also deduplicates the migration logic: both the Database.runMigrations
method and the exported ApplyMigrations helper now delegate to a single
applyMigrations function.

Adds database_test.go with tests for fresh migration, idempotency,
bootstrap on a fresh DB, and backwards compatibility with legacy DBs.
2026-03-19 23:07:06 -07:00