github.com/CloudCom/goose@v0.0.0-20151110184009-e03c3249c21b/cmd/goose/cmd_create.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "path/filepath" 8 "time" 9 10 "github.com/CloudCom/goose/lib/goose" 11 ) 12 13 var createCmd = &Command{ 14 Name: "create", 15 Usage: "<migration_name>", 16 Summary: "Create the scaffolding for a new migration", 17 Help: `create extended help here...`, 18 Run: createRun, 19 } 20 21 var migrationType string 22 23 func init() { 24 createCmd.Flag.StringVar(&migrationType, "type", "sql", "type of migration to create [sql,go]") 25 } 26 27 func createRun(cmd *Command, args ...string) { 28 if len(args) != 1 { 29 cmd.Flag.Usage() 30 os.Exit(1) 31 } 32 33 conf, err := dbConfFromFlags() 34 if err != nil { 35 log.Fatal(err) 36 } 37 38 if err = os.MkdirAll(conf.MigrationsDir, 0750); err != nil { 39 log.Fatal(err) 40 } 41 42 n, err := goose.CreateMigration(args[0], migrationType, conf.MigrationsDir, time.Now()) 43 if err != nil { 44 log.Fatal(err) 45 } 46 47 a, e := filepath.Abs(n) 48 if e != nil { 49 log.Fatal(e) 50 } 51 52 fmt.Println("goose: created", a) 53 }