61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"io/ioutil"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
const fileHeader = `// THIS FILE HAS BEEN AUTOMATICALLY GENERATED
|
|
// To re-generate it, run "go generate" in the models folder.
|
|
|
|
package models
|
|
|
|
var migrations = [...]string{
|
|
`
|
|
|
|
func main() {
|
|
// ReadDir gets all the files in the directory and then sorts them
|
|
// alphabetically - thus we can be sure 0000 will come first and 0001 will
|
|
// come afterwards.
|
|
files, err := ioutil.ReadDir("migrations")
|
|
check(err)
|
|
|
|
out, err := os.Create("migrations.go")
|
|
check(err)
|
|
|
|
_, err = out.WriteString(fileHeader)
|
|
check(err)
|
|
|
|
for _, file := range files {
|
|
if !strings.HasSuffix(file.Name(), ".sql") || file.IsDir() {
|
|
continue
|
|
}
|
|
f, err := os.Open("migrations/" + file.Name())
|
|
check(err)
|
|
|
|
out.WriteString("\t`")
|
|
_, err = io.Copy(out, f)
|
|
check(err)
|
|
out.WriteString("`,\n")
|
|
|
|
f.Close()
|
|
}
|
|
|
|
_, err = out.WriteString("}\n")
|
|
check(err)
|
|
|
|
check(out.Close())
|
|
}
|
|
|
|
func check(err error) {
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stdout, err)
|
|
os.Exit(1)
|
|
}
|
|
}
|