HN-like selfhosted forums
package storeimport ( "context" "database/sql" "embed" "fmt" _ "github.com/jackc/pgx/v5/stdlib" "github.com/pressly/goose/v3")//go:embed migrations/*.sqlvar migrationsFS embed.FSfunc Migrate(ctx context.Context, connStr string) error { db, err := sql.Open("pgx", connStr) if err != nil { return fmt.Errorf("cannot open migration connection: %w", err) } defer db.Close() goose.SetBaseFS(migrationsFS) if err := goose.SetDialect("postgres"); err != nil { return fmt.Errorf("cannot set dialect: %w", err) } if err := goose.Up(db, "migrations"); err != nil { return fmt.Errorf("cannot run migrations: %w", err) } return nil}