summaryrefslogtreecommitdiffstats
path: root/models/migrations/v50.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/migrations/v50.go')
-rw-r--r--models/migrations/v50.go49
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
}