package postgres import ( "context" "database/sql" "fmt" _ "github.com/jackc/pgx/v5/stdlib" // Register pgx driver for database/sql "git.nonahob.net/jacob/golibs/datastores/sql/migrate" ) // Migrate runs forward (up) migrations using the config's DSN. func (c *Config) Migrate(opts *migrate.Options) error { db, err := sql.Open("pgx", c.DSN()) if err != nil { return fmt.Errorf("failed to open database: %w", err) } defer db.Close() if err := db.Ping(); err != nil { return fmt.Errorf("failed to ping database: %w", err) } return migrate.Run(context.Background(), db, Dialect{}, opts) }