| @@ -2,7 +2,6 @@ | |||||
| id: 1 | id: 1 | ||||
| repo_id: 1 | repo_id: 1 | ||||
| type: 4 | type: 4 | ||||
| index: 3 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -10,7 +9,6 @@ | |||||
| id: 2 | id: 2 | ||||
| repo_id: 1 | repo_id: 1 | ||||
| type: 5 | type: 5 | ||||
| index: 4 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -18,7 +16,6 @@ | |||||
| id: 3 | id: 3 | ||||
| repo_id: 1 | repo_id: 1 | ||||
| type: 1 | type: 1 | ||||
| index: 0 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -26,7 +23,6 @@ | |||||
| id: 4 | id: 4 | ||||
| repo_id: 1 | repo_id: 1 | ||||
| type: 2 | type: 2 | ||||
| index: 1 | |||||
| config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}" | config: "{\"EnableTimetracker\":true,\"AllowOnlyContributorsToTrackTime\":true}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -34,7 +30,6 @@ | |||||
| id: 5 | id: 5 | ||||
| repo_id: 1 | repo_id: 1 | ||||
| type: 3 | type: 3 | ||||
| index: 2 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -42,7 +37,6 @@ | |||||
| id: 6 | id: 6 | ||||
| repo_id: 3 | repo_id: 3 | ||||
| type: 1 | type: 1 | ||||
| index: 0 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -50,7 +44,6 @@ | |||||
| id: 7 | id: 7 | ||||
| repo_id: 3 | repo_id: 3 | ||||
| type: 2 | type: 2 | ||||
| index: 1 | |||||
| config: "{\"EnableTimetracker\":false,\"AllowOnlyContributorsToTrackTime\":false}" | config: "{\"EnableTimetracker\":false,\"AllowOnlyContributorsToTrackTime\":false}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -58,7 +51,6 @@ | |||||
| id: 8 | id: 8 | ||||
| repo_id: 3 | repo_id: 3 | ||||
| type: 3 | type: 3 | ||||
| index: 2 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -66,7 +58,6 @@ | |||||
| id: 9 | id: 9 | ||||
| repo_id: 3 | repo_id: 3 | ||||
| type: 4 | type: 4 | ||||
| index: 3 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -74,6 +65,5 @@ | |||||
| id: 10 | id: 10 | ||||
| repo_id: 3 | repo_id: 3 | ||||
| type: 5 | type: 5 | ||||
| index: 4 | |||||
| config: "{}" | config: "{}" | ||||
| created_unix: 946684810 | created_unix: 946684810 | ||||
| @@ -138,6 +138,8 @@ var migrations = []Migration{ | |||||
| NewMigration("fix protected branch can push value to false", fixProtectedBranchCanPushValue), | NewMigration("fix protected branch can push value to false", fixProtectedBranchCanPushValue), | ||||
| // v44 -> v45 | // v44 -> v45 | ||||
| NewMigration("remove duplicate unit types", removeDuplicateUnitTypes), | NewMigration("remove duplicate unit types", removeDuplicateUnitTypes), | ||||
| // v45 -> v46 | |||||
| NewMigration("remove index column from repo_unit table", removeIndexColumnFromRepoUnitTable), | |||||
| } | } | ||||
| // Migrate database to current version | // Migrate database to current version | ||||
| @@ -0,0 +1,28 @@ | |||||
| // Copyright 2017 The Gitea Authors. All rights reserved. | |||||
| // Use of this source code is governed by a MIT-style | |||||
| // license that can be found in the LICENSE file. | |||||
| package migrations | |||||
| import ( | |||||
| "fmt" | |||||
| "code.gitea.io/gitea/modules/log" | |||||
| "code.gitea.io/gitea/modules/setting" | |||||
| "github.com/go-xorm/xorm" | |||||
| ) | |||||
| func removeIndexColumnFromRepoUnitTable(x *xorm.Engine) (err error) { | |||||
| 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 repo_unit DROP COLUMN index"); err != nil { | |||||
| return fmt.Errorf("DROP COLUMN index: %v", err) | |||||
| } | |||||
| default: | |||||
| log.Fatal(4, "Unrecognized DB") | |||||
| } | |||||
| return nil | |||||
| } | |||||
| @@ -1245,19 +1245,17 @@ func createRepository(e *xorm.Session, doer, u *User, repo *Repository) (err err | |||||
| // insert units for repo | // insert units for repo | ||||
| var units = make([]RepoUnit, 0, len(defaultRepoUnits)) | var units = make([]RepoUnit, 0, len(defaultRepoUnits)) | ||||
| for i, tp := range defaultRepoUnits { | |||||
| for _, tp := range defaultRepoUnits { | |||||
| if tp == UnitTypeIssues { | if tp == UnitTypeIssues { | ||||
| units = append(units, RepoUnit{ | units = append(units, RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: tp, | Type: tp, | ||||
| Index: i, | |||||
| Config: &IssuesConfig{EnableTimetracker: setting.Service.DefaultEnableTimetracking, AllowOnlyContributorsToTrackTime: setting.Service.DefaultAllowOnlyContributorsToTrackTime}, | Config: &IssuesConfig{EnableTimetracker: setting.Service.DefaultEnableTimetracking, AllowOnlyContributorsToTrackTime: setting.Service.DefaultAllowOnlyContributorsToTrackTime}, | ||||
| }) | }) | ||||
| } else { | } else { | ||||
| units = append(units, RepoUnit{ | units = append(units, RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: tp, | Type: tp, | ||||
| Index: i, | |||||
| }) | }) | ||||
| } | } | ||||
| @@ -16,9 +16,8 @@ import ( | |||||
| // RepoUnit describes all units of a repository | // RepoUnit describes all units of a repository | ||||
| type RepoUnit struct { | type RepoUnit struct { | ||||
| ID int64 | ID int64 | ||||
| RepoID int64 `xorm:"INDEX(s)"` | |||||
| Type UnitType `xorm:"INDEX(s)"` | |||||
| Index int | |||||
| RepoID int64 `xorm:"INDEX(s)"` | |||||
| Type UnitType `xorm:"INDEX(s)"` | |||||
| Config core.Conversion `xorm:"TEXT"` | Config core.Conversion `xorm:"TEXT"` | ||||
| CreatedUnix int64 `xorm:"INDEX CREATED"` | CreatedUnix int64 `xorm:"INDEX CREATED"` | ||||
| Created time.Time `xorm:"-"` | Created time.Time `xorm:"-"` | ||||
| @@ -149,7 +149,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: tp, | Type: tp, | ||||
| Index: int(tp), | |||||
| Config: new(models.UnitConfig), | Config: new(models.UnitConfig), | ||||
| }) | }) | ||||
| } | } | ||||
| @@ -165,7 +164,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: models.UnitTypeExternalWiki, | Type: models.UnitTypeExternalWiki, | ||||
| Index: int(models.UnitTypeExternalWiki), | |||||
| Config: &models.ExternalWikiConfig{ | Config: &models.ExternalWikiConfig{ | ||||
| ExternalWikiURL: form.ExternalWikiURL, | ExternalWikiURL: form.ExternalWikiURL, | ||||
| }, | }, | ||||
| @@ -174,7 +172,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: models.UnitTypeWiki, | Type: models.UnitTypeWiki, | ||||
| Index: int(models.UnitTypeWiki), | |||||
| Config: new(models.UnitConfig), | Config: new(models.UnitConfig), | ||||
| }) | }) | ||||
| } | } | ||||
| @@ -190,7 +187,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: models.UnitTypeExternalTracker, | Type: models.UnitTypeExternalTracker, | ||||
| Index: int(models.UnitTypeExternalTracker), | |||||
| Config: &models.ExternalTrackerConfig{ | Config: &models.ExternalTrackerConfig{ | ||||
| ExternalTrackerURL: form.ExternalTrackerURL, | ExternalTrackerURL: form.ExternalTrackerURL, | ||||
| ExternalTrackerFormat: form.TrackerURLFormat, | ExternalTrackerFormat: form.TrackerURLFormat, | ||||
| @@ -201,7 +197,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: models.UnitTypeIssues, | Type: models.UnitTypeIssues, | ||||
| Index: int(models.UnitTypeIssues), | |||||
| Config: &models.IssuesConfig{ | Config: &models.IssuesConfig{ | ||||
| EnableTimetracker: form.EnableTimetracker, | EnableTimetracker: form.EnableTimetracker, | ||||
| AllowOnlyContributorsToTrackTime: form.AllowOnlyContributorsToTrackTime, | AllowOnlyContributorsToTrackTime: form.AllowOnlyContributorsToTrackTime, | ||||
| @@ -214,7 +209,6 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { | |||||
| units = append(units, models.RepoUnit{ | units = append(units, models.RepoUnit{ | ||||
| RepoID: repo.ID, | RepoID: repo.ID, | ||||
| Type: models.UnitTypePullRequests, | Type: models.UnitTypePullRequests, | ||||
| Index: int(models.UnitTypePullRequests), | |||||
| Config: new(models.UnitConfig), | Config: new(models.UnitConfig), | ||||
| }) | }) | ||||
| } | } | ||||