From f089aaf1b66309756d3ee0e44cab30e17139b71a Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Tue, 7 Aug 2018 23:27:22 +0100 Subject: Add a tool to create empty migrations --- generate/migration/migration.go | 53 +++++++++++++++++++++++++++++++++++++++++ generate/static.go | 24 ------------------- generate/static/static.go | 24 +++++++++++++++++++ 3 files changed, 77 insertions(+), 24 deletions(-) create mode 100644 generate/migration/migration.go delete mode 100644 generate/static.go create mode 100644 generate/static/static.go (limited to 'generate') diff --git a/generate/migration/migration.go b/generate/migration/migration.go new file mode 100644 index 0000000..37515bf --- /dev/null +++ b/generate/migration/migration.go @@ -0,0 +1,53 @@ +package main + +import ( + "flag" + "fmt" + "io/ioutil" + "log" + "os/exec" + "path" + "strings" + "time" +) + +const ( + dateFormat = "20060102150405" + migrationsPath = "server/store/migrations" +) + +var ( + contents = []byte(`-- +migrate Up + + +-- +migrate Down`) +) + +func main() { + flag.Usage = func() { + fmt.Println("Usage: migration ") + } + flag.Parse() + if len(flag.Args()) != 1 { + flag.Usage() + } + name := fmt.Sprintf("%s_%s.sql", time.Now().UTC().Format(dateFormat), flag.Arg(0)) + gitRoot, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() + if err != nil { + log.Fatal(err) + } + root := strings.TrimSpace(string(gitRoot)) + ents, err := ioutil.ReadDir(path.Join(root, migrationsPath)) + if err != nil { + log.Fatal(err) + } + for _, e := range ents { + if e.IsDir() { + filename := path.Join(migrationsPath, e.Name(), name) + fmt.Printf("Wrote empty migration file: %s\n", filename) + if err := ioutil.WriteFile(filename, contents, 0644); err != nil { + log.Fatal(err) + } + } + } +} diff --git a/generate/static.go b/generate/static.go deleted file mode 100644 index c8e7f43..0000000 --- a/generate/static.go +++ /dev/null @@ -1,24 +0,0 @@ -package main - -//go:generate go run static.go - -import ( - "context" - "log" - "os/exec" - "strings" - - "github.com/gobuffalo/packr/builder" -) - -func main() { - root, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() - if err != nil { - log.Fatal(err) - } - b := builder.New(context.Background(), strings.TrimSpace(string(root))) - b.Compress = true - if err := b.Run(); err != nil { - log.Fatal(err) - } -} diff --git a/generate/static/static.go b/generate/static/static.go new file mode 100644 index 0000000..c8e7f43 --- /dev/null +++ b/generate/static/static.go @@ -0,0 +1,24 @@ +package main + +//go:generate go run static.go + +import ( + "context" + "log" + "os/exec" + "strings" + + "github.com/gobuffalo/packr/builder" +) + +func main() { + root, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() + if err != nil { + log.Fatal(err) + } + b := builder.New(context.Background(), strings.TrimSpace(string(root))) + b.Compress = true + if err := b.Run(); err != nil { + log.Fatal(err) + } +} -- cgit v1.2.3