update the reset
Showing
1 changed file
with
13 additions
and
6 deletions
| ... | @@ -45,7 +45,6 @@ type Migrationer interface { | ... | @@ -45,7 +45,6 @@ type Migrationer interface { |
| 45 | 45 | ||
| 46 | var ( | 46 | var ( |
| 47 | migrationMap map[string]Migrationer | 47 | migrationMap map[string]Migrationer |
| 48 | SkipReset []string | ||
| 49 | ) | 48 | ) |
| 50 | 49 | ||
| 51 | func init() { | 50 | func init() { |
| ... | @@ -175,7 +174,7 @@ func Rollback(name string) error { | ... | @@ -175,7 +174,7 @@ func Rollback(name string) error { |
| 175 | func Reset() error { | 174 | func Reset() error { |
| 176 | i := 0 | 175 | i := 0 |
| 177 | for k, v := range migrationMap { | 176 | for k, v := range migrationMap { |
| 178 | if inSlice(k, SkipReset) { | 177 | if isRollBack(k) { |
| 179 | beego.Info("skip the", k) | 178 | beego.Info("skip the", k) |
| 180 | continue | 179 | continue |
| 181 | } | 180 | } |
| ... | @@ -240,11 +239,19 @@ func sortMap(m map[string]Migrationer) dataSlice { | ... | @@ -240,11 +239,19 @@ func sortMap(m map[string]Migrationer) dataSlice { |
| 240 | return s | 239 | return s |
| 241 | } | 240 | } |
| 242 | 241 | ||
| 243 | func inSlice(key string, sli []string) bool { | 242 | func isRollBack(name string) bool { |
| 244 | for _, v := range sli { | 243 | o := orm.NewOrm() |
| 245 | if v == key { | 244 | var maps []orm.Params |
| 246 | return true | 245 | num, err := o.Raw("select * from migrations where `name` = ? order by id desc", name).Values(&maps) |
| 246 | if err != nil { | ||
| 247 | beego.Info("get name has error", err) | ||
| 248 | return false | ||
| 247 | } | 249 | } |
| 250 | if num <= 0 { | ||
| 251 | return false | ||
| 252 | } | ||
| 253 | if maps[0]["status"] == "rollback" { | ||
| 254 | return true | ||
| 248 | } | 255 | } |
| 249 | return false | 256 | return false |
| 250 | } | 257 | } | ... | ... |
-
Please register or sign in to post a comment