Files
website/internal/platform/database/schema.go

36 lines
929 B
Go

package databasePlatform
import (
"database/sql"
"fmt"
databaseHelpers "synlotto-website/internal/helpers/database"
migrationSQL "synlotto-website/internal/storage/migrations"
)
func EnsureInitialSchema(db *sql.DB) error {
fmt.Println("✅ EnsureInitialSchema called") // temp debug
var cnt int
if err := db.QueryRow(migrationSQL.ProbeUsersTable).Scan(&cnt); err != nil {
return fmt.Errorf("probe users table failed: %w", err)
}
fmt.Printf("👀 Probe users count = %d\n", cnt) // temp debug
if cnt > 0 {
return nil
}
// sanity: show embedded SQL length so we know it actually embedded
fmt.Printf("📦 Initial SQL bytes: %d\n", len(migrationSQL.InitialSchema)) // temp debug
tx, err := db.Begin()
if err != nil {
return err
}
if err := databaseHelpers.ExecScript(tx, migrationSQL.InitialSchema); err != nil {
_ = tx.Rollback()
return fmt.Errorf("apply schema: %w", err)
}
return tx.Commit()
}