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}