main
 1package main
 2
 3import (
 4	"os"
 5	"strings"
 6
 7	"github.com/golang-migrate/migrate/v4"
 8	"github.com/golang-migrate/migrate/v4/database/sqlite3"
 9	"github.com/golang-migrate/migrate/v4/source/file"
10	"mokhan.ca/xlgmokha/idp/pkg/db"
11	"mokhan.ca/xlgmokha/idp/pkg/x"
12)
13
14func main() {
15	db := x.Must(db.New("file:db/development.db"))
16	defer db.Close()
17
18	instance := x.Must(sqlite3.WithInstance(db, &sqlite3.Config{}))
19	files := x.Must((&file.File{}).Open("./db/migrate"))
20	defer files.Close()
21
22	migrations := x.Must(migrate.NewWithInstance("file", files, "sqlite3", instance))
23
24	if len(os.Args) == 2 && strings.ToLower(os.Args[1]) == "down" {
25		x.Check(migrations.Down())
26	} else {
27		x.Check(migrations.Up())
28	}
29}