diff options
Diffstat (limited to 'models/migrations/v1_13/v150.go')
-rw-r--r-- | models/migrations/v1_13/v150.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/models/migrations/v1_13/v150.go b/models/migrations/v1_13/v150.go new file mode 100644 index 0000000..d5ba489 --- /dev/null +++ b/models/migrations/v1_13/v150.go @@ -0,0 +1,39 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package v1_13 //nolint + +import ( + "code.gitea.io/gitea/models/migrations/base" + "code.gitea.io/gitea/modules/timeutil" + + "xorm.io/xorm" +) + +func AddPrimaryKeyToRepoTopic(x *xorm.Engine) error { + // Topic represents a topic of repositories + type Topic struct { + ID int64 `xorm:"pk autoincr"` + Name string `xorm:"UNIQUE VARCHAR(25)"` + RepoCount int + CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` + UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` + } + + // RepoTopic represents associated repositories and topics + type RepoTopic struct { + RepoID int64 `xorm:"pk"` + TopicID int64 `xorm:"pk"` + } + + sess := x.NewSession() + defer sess.Close() + if err := sess.Begin(); err != nil { + return err + } + + base.RecreateTable(sess, &Topic{}) + base.RecreateTable(sess, &RepoTopic{}) + + return sess.Commit() +} |