From 73613d7f5317f243b01adf4bf9e37cb041228207 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Mon, 16 Feb 2026 18:34:04 +0000 Subject: [PATCH] db: fix database_versions table creation for PostgreSQL Use GORM AutoMigrate instead of raw SQL to create the database_versions table, since PostgreSQL does not support the datetime type used in the raw SQL (it requires timestamp). --- hscontrol/db/versioncheck.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/hscontrol/db/versioncheck.go b/hscontrol/db/versioncheck.go index 1f2591d9..d78b00d3 100644 --- a/hscontrol/db/versioncheck.go +++ b/hscontrol/db/versioncheck.go @@ -33,12 +33,6 @@ type DatabaseVersion struct { UpdatedAt time.Time } -const createDatabaseVersionsSQL = `CREATE TABLE IF NOT EXISTS database_versions( - id integer PRIMARY KEY, - version text NOT NULL, - updated_at datetime -)` - // semver holds parsed major.minor.patch components. type semver struct { Major int @@ -90,10 +84,11 @@ func parseVersion(s string) (semver, error) { } // ensureDatabaseVersionTable creates the database_versions table if it -// does not already exist. Uses raw SQL to match schema.sql exactly. +// does not already exist. Uses GORM AutoMigrate to handle dialect +// differences between SQLite (datetime) and PostgreSQL (timestamp). // This runs before gormigrate migrations. func ensureDatabaseVersionTable(db *gorm.DB) error { - err := db.Exec(createDatabaseVersionsSQL).Error + err := db.AutoMigrate(&DatabaseVersion{}) if err != nil { return fmt.Errorf("creating database version table: %w", err) }