gopkg.in/yuukihogo/migrate.v3@v3.0.0/cli/commands.go (about) 1 package main 2 3 import ( 4 "github.com/mattes/migrate" 5 _ "github.com/mattes/migrate/database/stub" // TODO remove again 6 _ "github.com/mattes/migrate/source/file" 7 ) 8 9 func gotoCmd(m *migrate.Migrate, v uint) { 10 if err := m.Migrate(v); err != nil { 11 if err != migrate.ErrNoChange { 12 log.fatalErr(err) 13 } else { 14 log.Println(err) 15 } 16 } 17 } 18 19 func upCmd(m *migrate.Migrate, limit int) { 20 if limit >= 0 { 21 if err := m.Steps(limit); err != nil { 22 if err != migrate.ErrNoChange { 23 log.fatalErr(err) 24 } else { 25 log.Println(err) 26 } 27 } 28 } else { 29 if err := m.Up(); err != nil { 30 if err != migrate.ErrNoChange { 31 log.fatalErr(err) 32 } else { 33 log.Println(err) 34 } 35 } 36 } 37 } 38 39 func downCmd(m *migrate.Migrate, limit int) { 40 if limit >= 0 { 41 if err := m.Steps(-limit); err != nil { 42 if err != migrate.ErrNoChange { 43 log.fatalErr(err) 44 } else { 45 log.Println(err) 46 } 47 } 48 } else { 49 if err := m.Down(); err != nil { 50 if err != migrate.ErrNoChange { 51 log.fatalErr(err) 52 } else { 53 log.Println(err) 54 } 55 } 56 } 57 } 58 59 func dropCmd(m *migrate.Migrate) { 60 if err := m.Drop(); err != nil { 61 log.fatalErr(err) 62 } 63 } 64 65 func forceCmd(m *migrate.Migrate, v int) { 66 if err := m.Force(v); err != nil { 67 log.fatalErr(err) 68 } 69 } 70 71 func versionCmd(m *migrate.Migrate) { 72 v, dirty, err := m.Version() 73 if err != nil { 74 log.fatalErr(err) 75 } 76 if dirty { 77 log.Printf("%v (dirty)\n", v) 78 } else { 79 log.Println(v) 80 } 81 }