mirror of
https://github.com/beego/bee.git
synced 2024-12-22 15:10:49 +00:00
Merge pull request #39 from ZhengYang/master
Skeleton code for 'migrate' command
This commit is contained in:
commit
c58ee3ca2c
1
bee.go
1
bee.go
@ -83,6 +83,7 @@ var commands = []*Command{
|
||||
cmdVersion,
|
||||
cmdGenerate,
|
||||
cmdRundocs,
|
||||
cmdMigrate,
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
90
migrate.go
Normal file
90
migrate.go
Normal file
@ -0,0 +1,90 @@
|
||||
// Copyright 2013 bee authors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"): you may
|
||||
// not use this file except in compliance with the License. You may obtain
|
||||
// a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
// License for the specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
var cmdMigrate = &Command{
|
||||
UsageLine: "migrate [Command]",
|
||||
Short: "run database migrations",
|
||||
Long: `
|
||||
bee migrate
|
||||
run all outstanding migrations
|
||||
|
||||
bee migrate rollback
|
||||
rollback the last migration operation
|
||||
|
||||
bee migrate reset
|
||||
rollback all migrations
|
||||
|
||||
bee migrate refresh
|
||||
rollback all migrations and run them all again
|
||||
`,
|
||||
}
|
||||
|
||||
func init() {
|
||||
cmdMigrate.Run = runMigration
|
||||
}
|
||||
|
||||
func runMigration(cmd *Command, args []string) {
|
||||
//curpath, _ := os.Getwd()
|
||||
|
||||
gopath := os.Getenv("GOPATH")
|
||||
Debugf("gopath:%s", gopath)
|
||||
if gopath == "" {
|
||||
ColorLog("[ERRO] $GOPATH not found\n")
|
||||
ColorLog("[HINT] Set $GOPATH in your environment vairables\n")
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
if len(args) == 0 {
|
||||
// run all outstanding migrations
|
||||
ColorLog("[INFO] running all outstanding migrations\n")
|
||||
migrateUpdate()
|
||||
} else {
|
||||
mcmd := args[0]
|
||||
switch mcmd {
|
||||
case "rollback":
|
||||
ColorLog("[INFO] rolling back the last migration operation\n")
|
||||
migrateRollback()
|
||||
case "reset":
|
||||
ColorLog("[INFO] reseting all migrations\n")
|
||||
migrateReset()
|
||||
case "refresh":
|
||||
ColorLog("[INFO] refreshing all migrations\n")
|
||||
migrateReset()
|
||||
default:
|
||||
ColorLog("[ERRO] command is missing\n")
|
||||
os.Exit(2)
|
||||
}
|
||||
ColorLog("[SUCC] migration successful!\n")
|
||||
}
|
||||
}
|
||||
|
||||
func migrateUpdate() {
|
||||
println("=>update")
|
||||
}
|
||||
|
||||
func migrateRollback() {
|
||||
println("=>rollback")
|
||||
}
|
||||
|
||||
func migrateReset() {
|
||||
println("=>reset")
|
||||
}
|
||||
|
||||
func migrateRefresh() {
|
||||
println("=>refresh")
|
||||
}
|
Loading…
Reference in New Issue
Block a user