From a8f74d4ec89f2e4863db4a05a24dc01e4160e22d Mon Sep 17 00:00:00 2001 From: Jason Song Date: Thu, 20 Oct 2022 11:53:34 +0800 Subject: [PATCH] fix: make run index group by repo id only --- models/bots/run.go | 17 ++++------------- models/migrations/v-dev.go | 6 +++--- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/models/bots/run.go b/models/bots/run.go index cb5c4e2dbd..af6e87a7cc 100644 --- a/models/bots/run.go +++ b/models/bots/run.go @@ -7,7 +7,6 @@ package bots import ( "context" "fmt" - "hash/fnv" "time" "code.gitea.io/gitea/core" @@ -25,10 +24,10 @@ import ( type Run struct { ID int64 Title string - RepoID int64 `xorm:"index unique(repo_workflow_index)"` + RepoID int64 `xorm:"index unique(repo_index)"` Repo *repo_model.Repository `xorm:"-"` - WorkflowID string `xorm:"index unique(repo_workflow_index)"` // the name of workflow file - Index int64 `xorm:"index unique(repo_workflow_index)"` // a unique number for each run of a particular workflow in a repository + WorkflowID string `xorm:"index"` // the name of workflow file + Index int64 `xorm:"index unique(repo_index)"` // a unique number for each run of a repository TriggerUserID int64 TriggerUser *user_model.User `xorm:"-"` Ref string @@ -115,15 +114,7 @@ func updateRepoRunsNumbers(ctx context.Context, repo *repo_model.Repository) err // InsertRun inserts a bot run func InsertRun(run *Run, jobs []*jobparser.SingleWorkflow) error { - var groupID int64 - { - // tricky way to get resource group id - h := fnv.New64() - _, _ = h.Write([]byte(fmt.Sprintf("%d_%s", run.RepoID, run.WorkflowID))) - groupID = int64(h.Sum64()) - } - - index, err := db.GetNextResourceIndex("bots_run_index", groupID) + index, err := db.GetNextResourceIndex("bots_run_index", run.RepoID) if err != nil { return err } diff --git a/models/migrations/v-dev.go b/models/migrations/v-dev.go index b1fd905e6f..27e94fdffe 100644 --- a/models/migrations/v-dev.go +++ b/models/migrations/v-dev.go @@ -51,9 +51,9 @@ func addBotTables(x *xorm.Engine) error { type BotsRun struct { ID int64 Title string - RepoID int64 `xorm:"index unique(repo_workflow_index)"` - WorkflowID string `xorm:"index unique(repo_workflow_index)"` // the name of workflow file - Index int64 `xorm:"index unique(repo_workflow_index)"` // a unique number for each run of a particular workflow in a repository + RepoID int64 `xorm:"index unique(repo_index)"` + WorkflowID string `xorm:"index"` // the name of workflow file + Index int64 `xorm:"index unique(repo_index)"` // a unique number for each run of a repository TriggerUserID int64 Ref string CommitSHA string