mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								models/migrations/v45.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								models/migrations/v45.go
									
									
									
									
									
										Normal file
									
								
							@@ -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)"`
 | 
						RepoID      int64           `xorm:"INDEX(s)"`
 | 
				
			||||||
	Type        UnitType `xorm:"INDEX(s)"`
 | 
						Type        UnitType        `xorm:"INDEX(s)"`
 | 
				
			||||||
	Index       int
 | 
					 | 
				
			||||||
	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),
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user