From 4765f9a889ce7324416b51e7d4524b2368459752 Mon Sep 17 00:00:00 2001
From: Earl Warren <contact@earl-warren.org>
Date: Tue, 8 Aug 2023 23:52:37 +0200
Subject: [PATCH] [DB] forgejo migration v2: create the forgejo_sem_ver table

(cherry picked from commit 86b26436af85e0eedb732e115e8be024e1d54ca6)
(cherry picked from commit 479cba59aca2b3b73a83e5acc0b754906230f0b2)
---
 models/forgejo_migrations/migrate.go  |  6 +++++-
 models/forgejo_migrations/v1_20/v2.go | 15 +++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 models/forgejo_migrations/v1_20/v2.go

diff --git a/models/forgejo_migrations/migrate.go b/models/forgejo_migrations/migrate.go
index 88bbef70c7..2abacb0679 100644
--- a/models/forgejo_migrations/migrate.go
+++ b/models/forgejo_migrations/migrate.go
@@ -8,6 +8,7 @@ import (
 	"fmt"
 	"os"
 
+	forgejo_v1_20 "code.gitea.io/gitea/models/forgejo_migrations/v1_20"
 	"code.gitea.io/gitea/modules/git"
 	"code.gitea.io/gitea/modules/log"
 	"code.gitea.io/gitea/modules/setting"
@@ -34,7 +35,10 @@ func NewMigration(desc string, fn func(*xorm.Engine) error) *Migration {
 
 // This is a sequence of additional Forgejo migrations.
 // Add new migrations to the bottom of the list.
-var migrations = []*Migration{}
+var migrations = []*Migration{
+	// v1 -> v2
+	NewMigration("create the forgejo_sem_ver table", forgejo_v1_20.CreateSemVerTable),
+}
 
 // GetCurrentDBVersion returns the current Forgejo database version.
 func GetCurrentDBVersion(x *xorm.Engine) (int64, error) {
diff --git a/models/forgejo_migrations/v1_20/v2.go b/models/forgejo_migrations/v1_20/v2.go
new file mode 100644
index 0000000000..39f3b58924
--- /dev/null
+++ b/models/forgejo_migrations/v1_20/v2.go
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: MIT
+
+package forgejo_v1_20 //nolint:revive
+
+import (
+	"xorm.io/xorm"
+)
+
+func CreateSemVerTable(x *xorm.Engine) error {
+	type ForgejoSemVer struct {
+		Version string
+	}
+
+	return x.Sync(new(ForgejoSemVer))
+}