44 lines
784 B
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)
|
|
}
|
|
}
|