From 695e8ae81d5f1c4e18e564bbd6510391cfe1f337 Mon Sep 17 00:00:00 2001 From: zeripath Date: Wed, 25 Aug 2021 23:10:15 +0100 Subject: [PATCH] Add primary_key to issue_index (#16813) (#16820) Backport #16813 Make the group_id a primary key in issue_index. This already has an unique index and therefore is a good candidate for becoming a primary key. This PR also changes all other uses of this table to add the group_id as the primary key. The migration v192 from #16813 has not been backported but Xorm will work fine with non-primary keyed tables. If a user on 1.15 wishes to have the correct schema sooner than 1.16 - they can use gitea doctor recreate-table issue_index and gitea will recreate the table with the primary key. Fix #16802 Signed-off-by: Andrew Thornton art27@cantab.net --- models/index.go | 2 +- models/migrations/v182.go | 4 ++-- models/migrations/v182_test.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/models/index.go b/models/index.go index 18db13c49..121a149ca 100644 --- a/models/index.go +++ b/models/index.go @@ -14,7 +14,7 @@ import ( // ResourceIndex represents a resource index which could be used as issue/release and others // We can create different tables i.e. issue_index, release_index and etc. type ResourceIndex struct { - GroupID int64 `xorm:"unique"` + GroupID int64 `xorm:"pk"` MaxIndex int64 `xorm:"index"` } diff --git a/models/migrations/v182.go b/models/migrations/v182.go index dd9a04f27..29c2d2654 100644 --- a/models/migrations/v182.go +++ b/models/migrations/v182.go @@ -10,8 +10,8 @@ import ( func addIssueResourceIndexTable(x *xorm.Engine) error { type ResourceIndex struct { - GroupID int64 `xorm:"index unique(s)"` - MaxIndex int64 `xorm:"index unique(s)"` + GroupID int64 `xorm:"pk"` + MaxIndex int64 `xorm:"index"` } sess := x.NewSession() diff --git a/models/migrations/v182_test.go b/models/migrations/v182_test.go index 6f418f779..9fb371e07 100644 --- a/models/migrations/v182_test.go +++ b/models/migrations/v182_test.go @@ -33,8 +33,8 @@ func Test_addIssueResourceIndexTable(t *testing.T) { } type ResourceIndex struct { - GroupID int64 `xorm:"index unique(s)"` - MaxIndex int64 `xorm:"index unique(s)"` + GroupID int64 `xorm:"pk"` + MaxIndex int64 `xorm:"index"` } var start = 0