package db import ( "database/sql" "embed" "github.com/pressly/goose/v3" ) //go:embed migrations/*.sql var embedMigrations embed.FS // RunMigrations runs all pending migrations func RunMigrations(db *sql.DB) error { goose.SetBaseFS(embedMigrations) if err := goose.SetDialect("sqlite3"); err != nil { return err } if err := goose.Up(db, "migrations"); err != nil { return err } return nil } // RollbackMigration rolls back the last migration func RollbackMigration(db *sql.DB) error { goose.SetBaseFS(embedMigrations) if err := goose.SetDialect("sqlite3"); err != nil { return err } if err := goose.Down(db, "migrations"); err != nil { return err } return nil } // MigrationStatus shows the status of all migrations func MigrationStatus(db *sql.DB) error { goose.SetBaseFS(embedMigrations) if err := goose.SetDialect("sqlite3"); err != nil { return err } if err := goose.Status(db, "migrations"); err != nil { return err } return nil }