From 274bc480b41132920e36c1cbee8a0f0e69a4ba0c Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Mon, 23 Dec 2024 08:24:40 +0100 Subject: [PATCH] fix: Gitea last drop Some database fields were added in the database to facilitate migration from Gitea and do not serve any purpose. Drop them since v1.22 is the last version of the database to allow a transparent migration to Forgejo. --- models/migrations/migrations.go | 3 +++ models/migrations/v1_23/v303.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 models/migrations/v1_23/v303.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 77a97fb3f6..1c55bcd63d 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -362,6 +362,9 @@ func prepareMigrationTasks() []*migration { newMigration(300, "Add force-push branch protection support", v1_23.AddForcePushBranchProtection), newMigration(301, "Add skip_secondary_authorization option to oauth2 application table", v1_23.AddSkipSecondaryAuthColumnToOAuth2ApplicationTable), newMigration(302, "Add index to action_task stopped log_expired", v1_23.AddIndexToActionTaskStoppedLogExpired), + + // Migration to Forgejo v10 + newMigration(303, "Gitea last drop", v1_23.GiteaLastDrop), } return preparedMigrations } diff --git a/models/migrations/v1_23/v303.go b/models/migrations/v1_23/v303.go new file mode 100644 index 0000000000..c1e74c596a --- /dev/null +++ b/models/migrations/v1_23/v303.go @@ -0,0 +1,33 @@ +// Copyright 2024 The Forgejo Authors. +// SPDX-License-Identifier: MIT + +package v1_23 //nolint + +import ( + "code.gitea.io/gitea/models/migrations/base" + + "xorm.io/xorm" +) + +func GiteaLastDrop(x *xorm.Engine) error { + sess := x.NewSession() + defer sess.Close() + + if err := base.DropTableColumns(sess, "badge", "slug"); err != nil { + return err + } + if err := base.DropTableColumns(sess, "oauth2_application", "skip_secondary_authorization"); err != nil { + return err + } + if err := base.DropTableColumns(sess, "repository", "default_wiki_branch"); err != nil { + return err + } + // the migration v297.go that adds everyone_access_mode exists in Gitea >= v1.22 and the column must be dropped + // but it does not exist in Forgejo and a failure to drop the column can be ignored + base.DropTableColumns(sess, "repo_unit", "everyone_access_mode") + if err := base.DropTableColumns(sess, "protected_branch", "can_force_push", "enable_force_push_allowlist", "force_push_allowlist_user_i_ds", "force_push_allowlist_team_i_ds", "force_push_allowlist_deploy_keys"); err != nil { + return err + } + + return sess.Commit() +}