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
This commit is contained in:
zeripath 2021-08-25 23:10:15 +01:00 committed by GitHub
parent 2148b27bfa
commit 695e8ae81d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 5 deletions

View file

@ -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"`
}

View file

@ -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()

View file

@ -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