route/cmd/route-runmigrations/main.go

44 lines
784 B
Go

package main
import (
"log"
"git.xeserv.us/xena/route/internal/database/dmigrations"
"github.com/caarlos0/env"
"github.com/mattes/migrate"
_ "github.com/mattes/migrate/database/postgres"
bindata "github.com/mattes/migrate/source/go-bindata"
)
type config struct {
DatabaseURL string `env:"DATABASE_URL,required"`
}
func main() {
var cfg config
err := env.Parse(&cfg)
if err != nil {
log.Fatal(err)
}
s := bindata.Resource(dmigrations.AssetNames(),
func(name string) ([]byte, error) {
return dmigrations.Asset(name)
})
d, err := bindata.WithInstance(s)
if err != nil {
log.Fatal(err)
}
m, err := migrate.NewWithSourceInstance("go-bindata", d, cfg.DatabaseURL)
if err != nil {
log.Fatal(err)
}
err = m.Up()
if err != nil {
log.Fatal(err)
}
}