diff options
author | Lauris BH <lauris@nix.lv> | 2017-12-13 16:52:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-13 16:52:18 +0200 |
commit | c06cc740dea46f3aff58e0eded4208232bb5902d (patch) | |
tree | 8f17cf90828fb06133a14cdee2df67ea6db75550 /models/migrations/v50.go | |
parent | d3c5911ffce8758d020b301e667869aa2e80ce6a (diff) | |
download | gitea-c06cc740dea46f3aff58e0eded4208232bb5902d.tar.gz gitea-c06cc740dea46f3aff58e0eded4208232bb5902d.zip |
Reorder migrations, skip errors if running migration again (#3160)
* Reorder migrations, skip errors if running migration again
* Rename migration file names to match migration version
* Add note about ingored error
Diffstat (limited to 'models/migrations/v50.go')
-rw-r--r-- | models/migrations/v50.go | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/models/migrations/v50.go b/models/migrations/v50.go index 7437cace25..4ed8f05157 100644 --- a/models/migrations/v50.go +++ b/models/migrations/v50.go @@ -5,24 +5,51 @@ package migrations import ( - "fmt" + "time" + + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" "github.com/go-xorm/xorm" ) -func addReactions(x *xorm.Engine) error { - // Reaction see models/issue_reaction.go - type Reaction struct { +func migrateProtectedBranchStruct(x *xorm.Engine) error { + type ProtectedBranch struct { ID int64 `xorm:"pk autoincr"` - Type string `xorm:"INDEX UNIQUE(s) NOT NULL"` - IssueID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"` - CommentID int64 `xorm:"INDEX UNIQUE(s)"` - UserID int64 `xorm:"INDEX UNIQUE(s) NOT NULL"` - CreatedUnix int64 `xorm:"INDEX created"` + RepoID int64 `xorm:"UNIQUE(s)"` + BranchName string `xorm:"UNIQUE(s)"` + CanPush bool + Created time.Time `xorm:"-"` + CreatedUnix int64 + Updated time.Time `xorm:"-"` + UpdatedUnix int64 + } + + var pbs []ProtectedBranch + err := x.Find(&pbs) + if err != nil { + return err } - if err := x.Sync2(new(Reaction)); err != nil { - return fmt.Errorf("Sync2: %v", err) + for _, pb := range pbs { + if pb.CanPush { + if _, err = x.ID(pb.ID).Delete(new(ProtectedBranch)); err != nil { + return err + } + } } + + switch { + case setting.UseSQLite3: + log.Warn("Unable to drop columns in SQLite") + case setting.UseMySQL, setting.UsePostgreSQL, setting.UseMSSQL, setting.UseTiDB: + if _, err := x.Exec("ALTER TABLE protected_branch DROP COLUMN can_push"); err != nil { + // Ignoring this error in case we run this migration second time (after migration reordering) + log.Warn("DROP COLUMN can_push (skipping): %v", err) + } + default: + log.Fatal(4, "Unrecognized DB") + } + return nil } |