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).
This commit is contained in:
parent
30d18575be
commit
73613d7f53
@ -33,12 +33,6 @@ type DatabaseVersion struct {
|
|||||||
UpdatedAt time.Time
|
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.
|
// semver holds parsed major.minor.patch components.
|
||||||
type semver struct {
|
type semver struct {
|
||||||
Major int
|
Major int
|
||||||
@ -90,10 +84,11 @@ func parseVersion(s string) (semver, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ensureDatabaseVersionTable creates the database_versions table if it
|
// 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.
|
// This runs before gormigrate migrations.
|
||||||
func ensureDatabaseVersionTable(db *gorm.DB) error {
|
func ensureDatabaseVersionTable(db *gorm.DB) error {
|
||||||
err := db.Exec(createDatabaseVersionsSQL).Error
|
err := db.AutoMigrate(&DatabaseVersion{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("creating database version table: %w", err)
|
return fmt.Errorf("creating database version table: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user