package store import ( "database/sql" "embed" "io/fs" "log" "sort" _ "github.com/jackc/pgx/v5/stdlib" ) //go:embed migrations var migrationsFS embed.FS func Migrate(databaseURL string) error { db, err := sql.Open("pgx", databaseURL) if err != nil { return err } defer db.Close() entries, err := fs.Glob(migrationsFS, "migrations/*.sql") if err != nil { return err } sort.Strings(entries) for _, name := range entries { sql, err := migrationsFS.ReadFile(name) if err != nil { return err } if _, err := db.Exec(string(sql)); err != nil { return err } } log.Printf("migrations applied") return nil }