55a77110 by astaxie

migration: skip reset

1 parent 436edda9
...@@ -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 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!