From 12129cb4f0143c58a5d6c12ce905b950a0d996b5 Mon Sep 17 00:00:00 2001 From: mo khan Date: Sun, 15 May 2022 14:48:52 -0600 Subject: refactor: tidy up migrate up/down --- Makefile | 6 +++++- cmd/migrate/main.go | 37 ++++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index a8c0de8..4760882 100644 --- a/Makefile +++ b/Makefile @@ -25,9 +25,13 @@ test: ## Run tests go test -v -race $(PACKAGES) .PHONY: migrate -migrate: ## Run db migrations +migrate: ## Run db migrate:up go run ./cmd/migrate/main.go +.PHONY: migrate/down +migrate_down: ## Run db migrate:down + go run ./cmd/migrate/main.go down + .PHONY: help help: @echo "Valid targets:" diff --git a/cmd/migrate/main.go b/cmd/migrate/main.go index 6c77eda..44e0c00 100644 --- a/cmd/migrate/main.go +++ b/cmd/migrate/main.go @@ -2,6 +2,8 @@ package main import ( "log" + "os" + "strings" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database/sqlite3" @@ -9,29 +11,30 @@ import ( "mokhan.ca/xlgmokha/idp/pkg/db" ) -func main() { - db, err := db.New("file:db/development.db") +func Check(err error) { if err != nil { log.Fatal(err) } - defer db.Close() +} - instance, err := sqlite3.WithInstance(db, &sqlite3.Config{}) - if err != nil { - log.Fatal(err) - } +func Must[T any](item T, err error) T { + Check(err) + return item +} - files, err := (&file.File{}).Open("./db/migrate") - if err != nil { - log.Fatal(err) - } +func main() { + db := Must(db.New("file:db/development.db")) + defer db.Close() - m, err := migrate.NewWithInstance("file", files, "sqlite3", instance) - if err != nil { - log.Fatal(err) - } + instance := Must(sqlite3.WithInstance(db, &sqlite3.Config{})) + files := Must((&file.File{}).Open("./db/migrate")) + defer files.Close() - if err := m.Up(); err != nil { - log.Fatal(err) + migrations := Must(migrate.NewWithInstance("file", files, "sqlite3", instance)) + + if len(os.Args) == 2 && strings.ToLower(os.Args[1]) == "down" { + Check(migrations.Down()) + } else { + Check(migrations.Up()) } } -- cgit v1.2.3