summaryrefslogtreecommitdiffstats
path: root/models/migrations/v1_13/v146.go
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
commitdd136858f1ea40ad3c94191d647487fa4f31926c (patch)
tree58fec94a7b2a12510c9664b21793f1ed560c6518 /models/migrations/v1_13/v146.go
parentInitial commit. (diff)
downloadforgejo-upstream/9.0.0.tar.xz
forgejo-upstream/9.0.0.zip
Adding upstream version 9.0.0.HEADupstream/9.0.0upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'models/migrations/v1_13/v146.go')
-rw-r--r--models/migrations/v1_13/v146.go83
1 files changed, 83 insertions, 0 deletions
diff --git a/models/migrations/v1_13/v146.go b/models/migrations/v1_13/v146.go
new file mode 100644
index 0000000..7d9a878
--- /dev/null
+++ b/models/migrations/v1_13/v146.go
@@ -0,0 +1,83 @@
+// Copyright 2020 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package v1_13 //nolint
+
+import (
+ "code.gitea.io/gitea/modules/timeutil"
+
+ "xorm.io/xorm"
+)
+
+func AddProjectsInfo(x *xorm.Engine) error {
+ // Create new tables
+ type (
+ ProjectType uint8
+ ProjectBoardType uint8
+ )
+
+ type Project struct {
+ ID int64 `xorm:"pk autoincr"`
+ Title string `xorm:"INDEX NOT NULL"`
+ Description string `xorm:"TEXT"`
+ RepoID int64 `xorm:"INDEX"`
+ CreatorID int64 `xorm:"NOT NULL"`
+ IsClosed bool `xorm:"INDEX"`
+
+ BoardType ProjectBoardType
+ Type ProjectType
+
+ ClosedDateUnix timeutil.TimeStamp
+ CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
+ UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
+ }
+
+ if err := x.Sync(new(Project)); err != nil {
+ return err
+ }
+
+ type Comment struct {
+ OldProjectID int64
+ ProjectID int64
+ }
+
+ if err := x.Sync(new(Comment)); err != nil {
+ return err
+ }
+
+ type Repository struct {
+ ID int64
+ NumProjects int `xorm:"NOT NULL DEFAULT 0"`
+ NumClosedProjects int `xorm:"NOT NULL DEFAULT 0"`
+ }
+
+ if err := x.Sync(new(Repository)); err != nil {
+ return err
+ }
+
+ // ProjectIssue saves relation from issue to a project
+ type ProjectIssue struct {
+ ID int64 `xorm:"pk autoincr"`
+ IssueID int64 `xorm:"INDEX"`
+ ProjectID int64 `xorm:"INDEX"`
+ ProjectBoardID int64 `xorm:"INDEX"`
+ }
+
+ if err := x.Sync(new(ProjectIssue)); err != nil {
+ return err
+ }
+
+ type ProjectBoard struct {
+ ID int64 `xorm:"pk autoincr"`
+ Title string
+ Default bool `xorm:"NOT NULL DEFAULT false"`
+
+ ProjectID int64 `xorm:"INDEX NOT NULL"`
+ CreatorID int64 `xorm:"NOT NULL"`
+
+ CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
+ UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
+ }
+
+ return x.Sync(new(ProjectBoard))
+}