fix(backend): harden postgres id default repair and CI coverage

Run Postgres id-sequence repair on every startup migration and add contract coverage plus a GitHub Actions Postgres job to catch schema-drift regressions before release.
This commit is contained in:
sagit
2026-02-14 11:02:46 +00:00
parent 6abe3e7713
commit 3f80278dd4
4 changed files with 237 additions and 5 deletions
@@ -1307,6 +1307,8 @@ func bootstrapSchema(db *store.DB, schemaSQL, seedSQL string) error {
const currentSchemaVersion = 2
var ensurePostgresIDDefaultsFn = ensurePostgresIDDefaults
func getSchemaVersion(db *store.DB) int {
_, _ = db.Exec(`CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL DEFAULT 0)`)
var v int
@@ -1327,6 +1329,11 @@ func migrateSchema(db *store.DB) error {
}
ver := getSchemaVersion(db)
if db.Dialect() == store.DialectPostgres {
if err := ensurePostgresIDDefaultsFn(db); err != nil {
return err
}
}
if ver >= currentSchemaVersion {
return nil
}
@@ -1396,11 +1403,6 @@ func migrateSchema(db *store.DB) error {
return err
}
if db.Dialect() == store.DialectPostgres {
if err := ensurePostgresIDDefaults(db); err != nil {
return err
}
}
setSchemaVersion(db, currentSchemaVersion)
return nil
}