package database import ( "database/sql" "fmt" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database/postgres" _ "github.com/golang-migrate/migrate/v4/source/file" _ "github.com/lib/pq" "log" "os" ) func DB() *sql.DB { db, err := sql.Open("postgres", os.Getenv("DATABASE_URL")) if err != nil { fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err) os.Exit(1) } return db } func Migrate(db *sql.DB) { driver, err := postgres.WithInstance(db, &postgres.Config{}) if err != nil { log.Fatal(err) } m, err := migrate.NewWithDatabaseInstance("file://migrations", "postgres", driver) if err != nil { log.Fatal(err) } if err := m.Up(); err != nil { log.Fatal(err) } }