diff --git a/cmd/route-runmigrations/main.go b/cmd/route-runmigrations/main.go new file mode 100644 index 0000000..a5c102e --- /dev/null +++ b/cmd/route-runmigrations/main.go @@ -0,0 +1,43 @@ +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) + } +}