package database import ( "database/sql" "embed" "fmt" _ "github.com/mattn/go-sqlite3" "github.com/pressly/goose/v3" ) //go:embed migrations/*.sql var embedMigrations embed.FS func Connect(path string) (*sql.DB, error) { return sql.Open("sqlite3", path+"?_foreign_keys=on") } func Migrate(db *sql.DB) error { goose.SetBaseFS(embedMigrations) if err := goose.SetDialect("sqlite3"); err != nil { return fmt.Errorf("could not set dialect: %w", err) } if err := goose.Up(db, "migrations"); err != nil { return fmt.Errorf("could not apply migrations: %w", err) } return nil }