diff --git a/examples/go-migrations/main.go b/examples/go-migrations/main.go index ce1f26b..77c9997 100644 --- a/examples/go-migrations/main.go +++ b/examples/go-migrations/main.go @@ -1,3 +1,5 @@ +// This is custom goose binary with sqlite3 support only. + package main import ( @@ -7,11 +9,7 @@ import ( "github.com/pressly/goose" - // Init DB drivers. - _ "github.com/go-sql-driver/mysql" - _ "github.com/lib/pq" _ "github.com/mattn/go-sqlite3" - _ "github.com/ziutek/mymysql/godrv" ) var ( @@ -20,49 +18,19 @@ var ( ) func main() { - flags.Usage = usage flags.Parse(os.Args[1:]) - args := flags.Args() - if len(args) == 0 || args[0] == "-h" || args[0] == "--help" { + + if len(args) < 2 { flags.Usage() return } - switch args[0] { - case "create": - if err := goose.Run("create", nil, *dir, args[1:]...); err != nil { - log.Fatalf("goose run: %v", err) - } - return - case "fix": - if err := goose.Run("fix", nil, *dir); err != nil { - log.Fatalf("goose run: %v", err) - } - return - } + dbstring, command := args[1], args[2] - if len(args) < 3 { - flags.Usage() - return - } - - if args[0] == "-h" || args[0] == "--help" { - flags.Usage() - return - } - - driver, dbstring, command := args[0], args[1], args[2] - - switch dbstring { - case "": - log.Fatalf("-dbstring=%q not supported\n", dbstring) - default: - } - - db, err := goose.OpenDBWithDriver(driver, dbstring) + db, err := goose.OpenDBWithDriver("sqlite3", dbstring) if err != nil { - log.Fatalf("goose run: %v\n", err) + log.Fatalf("goose: failed to open DB: %v\n", err) } arguments := []string{} @@ -71,49 +39,6 @@ func main() { } if err := goose.Run(command, db, *dir, arguments...); err != nil { - log.Fatalf("goose run: %v", err) + log.Fatalf("goose %v: %v", command, err) } } - -func usage() { - log.Print(usagePrefix) - flags.PrintDefaults() - log.Print(usageCommands) -} - -var ( - usagePrefix = `Usage: goose [OPTIONS] DRIVER DBSTRING COMMAND - -Drivers: - postgres - mysql - sqlite3 - redshift - -Examples: - goose sqlite3 ./foo.db status - goose sqlite3 ./foo.db create init sql - goose sqlite3 ./foo.db create add_some_column sql - goose sqlite3 ./foo.db create fetch_user_data go - goose sqlite3 ./foo.db up - - goose postgres "user=postgres dbname=postgres sslmode=disable" status - goose mysql "user:password@/dbname?parseTime=true" status - goose redshift "postgres://user:password@qwerty.us-east-1.redshift.amazonaws.com:5439/db" status - -Options: -` - - usageCommands = ` -Commands: - up Migrate the DB to the most recent version available - up-to VERSION Migrate the DB to a specific VERSION - down Roll back the version by 1 - down-to VERSION Roll back to a specific VERSION - redo Re-run the latest migration - status Dump the migration status for the current DB - version Print the current version of the database - create NAME [sql|go] Creates new migration file with the current timestamp - fix Apply sequential ordering to migrations -` -)