// Package migrations 通过 goose 执行采购服务的版本化数据库迁移。 package migrations import ( "context" "database/sql" "github.com/pressly/goose/v3" ) // Run 执行指定的 goose 命令。迁移目录由调用方显式传入,避免把运行目录当作隐式配置。 func Run(ctx context.Context, database *sql.DB, directory, command string) error { if err := goose.SetDialect("sqlite3"); err != nil { return err } return goose.RunContext(ctx, command, database, directory) } // Up 将数据库迁移到当前版本。 func Up(ctx context.Context, database *sql.DB, directory string) error { return Run(ctx, database, directory, "up") } // Down 回退一个已应用的迁移版本。 func Down(ctx context.Context, database *sql.DB, directory string) error { return Run(ctx, database, directory, "down") }