migration: skip reset
Showing
1 changed file
with
17 additions
and
1 deletions
| ... | @@ -43,7 +43,10 @@ type Migrationer interface { | ... | @@ -43,7 +43,10 @@ type Migrationer interface { |
| 43 | GetCreated() int64 | 43 | GetCreated() int64 |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | var migrationMap map[string]Migrationer | 46 | var ( |
| 47 | migrationMap map[string]Migrationer | ||
| 48 | SkipReset []string | ||
| 49 | ) | ||
| 47 | 50 | ||
| 48 | func init() { | 51 | func init() { |
| 49 | migrationMap = make(map[string]Migrationer) | 52 | migrationMap = make(map[string]Migrationer) |
| ... | @@ -172,6 +175,10 @@ func Rollback(name string) error { | ... | @@ -172,6 +175,10 @@ func Rollback(name string) error { |
| 172 | func Reset() error { | 175 | func Reset() error { |
| 173 | i := 0 | 176 | i := 0 |
| 174 | for k, v := range migrationMap { | 177 | for k, v := range migrationMap { |
| 178 | if inSlice(k, SkipReset) { | ||
| 179 | beego.Info("skip the", k) | ||
| 180 | continue | ||
| 181 | } | ||
| 175 | beego.Info("start reset:", k) | 182 | beego.Info("start reset:", k) |
| 176 | v.Down() | 183 | v.Down() |
| 177 | err := v.Exec(k, "down") | 184 | err := v.Exec(k, "down") |
| ... | @@ -232,3 +239,12 @@ func sortMap(m map[string]Migrationer) dataSlice { | ... | @@ -232,3 +239,12 @@ func sortMap(m map[string]Migrationer) dataSlice { |
| 232 | sort.Sort(s) | 239 | sort.Sort(s) |
| 233 | return s | 240 | return s |
| 234 | } | 241 | } |
| 242 | |||
| 243 | func inSlice(key string, sli []string) bool { | ||
| 244 | for _, v := range sli { | ||
| 245 | if v == key { | ||
| 246 | return true | ||
| 247 | } | ||
| 248 | } | ||
| 249 | return false | ||
| 250 | } | ... | ... |
-
Please register or sign in to post a comment