package db import ( "database/sql" "embed" "github.com/pressly/goose/v3" _ "modernc.org/sqlite" ) //go:embed migrations/*.sql var migrations embed.FS var DB *sql.DB func Init(dbPath string) error { var err error DB, err = sql.Open("sqlite", dbPath+"?_journal_mode=WAL&_busy_timeout=5000") if err != nil { return err } DB.SetMaxOpenConns(1) goose.SetBaseFS(migrations) if err := goose.SetDialect("sqlite3"); err != nil { return err } if err := goose.Up(DB, "migrations"); err != nil { return err } return nil }