Backport #30894 by @lunny Fix #30872 We will assume the database is consistent before executing the migration. So the indexes should exist. Removing `IF EXIST` then is safe enough. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: silverwind <me@silverwind.io>tags/v1.22.0
@@ -1,3 +1,5 @@ | |||
- | |||
id: 1 | |||
user_id: 1 | |||
pull_id: 1 | |||
commit_sha: 19fe5caf872476db265596eaac1dc35ad1c6422d |
@@ -36,9 +36,9 @@ func expandHashReferencesToSha256(x *xorm.Engine) error { | |||
if setting.Database.Type.IsMSSQL() { | |||
// drop indexes that need to be re-created afterwards | |||
droppedIndexes := []string{ | |||
"DROP INDEX IF EXISTS [IDX_commit_status_context_hash] ON [commit_status]", | |||
"DROP INDEX IF EXISTS [UQE_review_state_pull_commit_user] ON [review_state]", | |||
"DROP INDEX IF EXISTS [UQE_repo_archiver_s] ON [repo_archiver]", | |||
"DROP INDEX [IDX_commit_status_context_hash] ON [commit_status]", | |||
"DROP INDEX [UQE_review_state_pull_commit_user] ON [review_state]", | |||
"DROP INDEX [UQE_repo_archiver_s] ON [repo_archiver]", | |||
} | |||
for _, s := range droppedIndexes { | |||
_, err := db.Exec(s) |
@@ -19,21 +19,21 @@ func PrepareOldRepository(t *testing.T) (*xorm.Engine, func()) { | |||
type CommitStatus struct { | |||
ID int64 | |||
ContextHash string | |||
ContextHash string `xorm:"char(40) index"` | |||
} | |||
type RepoArchiver struct { | |||
ID int64 | |||
RepoID int64 | |||
Type int | |||
CommitID string | |||
RepoID int64 `xorm:"index unique(s)"` | |||
Type int `xorm:"unique(s)"` | |||
CommitID string `xorm:"VARCHAR(40) unique(s)"` | |||
} | |||
type ReviewState struct { | |||
ID int64 | |||
CommitSHA string | |||
UserID int64 | |||
PullID int64 | |||
UserID int64 `xorm:"NOT NULL UNIQUE(pull_commit_user)"` | |||
PullID int64 `xorm:"NOT NULL INDEX UNIQUE(pull_commit_user) DEFAULT 0"` | |||
CommitSHA string `xorm:"NOT NULL VARCHAR(40) UNIQUE(pull_commit_user)"` | |||
} | |||
type Comment struct { |