aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2025-03-07 13:08:53 -0800
committerGitHub <noreply@github.com>2025-03-07 21:08:53 +0000
commit1b2dffff8ed265cb799a2c22202c7818989330e2 (patch)
treeaa684305f950a612f982622243c34a57cf4b14b8 /cmd
parentb8c2afdc5fda830c85586988a49d47678ba0ea98 (diff)
downloadgitea-1b2dffff8ed265cb799a2c22202c7818989330e2.tar.gz
gitea-1b2dffff8ed265cb799a2c22202c7818989330e2.zip
Add global lock for migrations to make upgrade more safe with multiple replications (#33706)
Diffstat (limited to 'cmd')
-rw-r--r--cmd/doctor.go5
-rw-r--r--cmd/migrate.go4
-rw-r--r--cmd/migrate_storage.go4
3 files changed, 7 insertions, 6 deletions
diff --git a/cmd/doctor.go b/cmd/doctor.go
index e433f4adc5..52699cc4dd 100644
--- a/cmd/doctor.go
+++ b/cmd/doctor.go
@@ -4,6 +4,7 @@
package cmd
import (
+ "context"
"fmt"
golog "log"
"os"
@@ -130,8 +131,8 @@ func runRecreateTable(ctx *cli.Context) error {
}
recreateTables := migrate_base.RecreateTables(beans...)
- return db.InitEngineWithMigration(stdCtx, func(x *xorm.Engine) error {
- if err := migrations.EnsureUpToDate(x); err != nil {
+ return db.InitEngineWithMigration(stdCtx, func(ctx context.Context, x *xorm.Engine) error {
+ if err := migrations.EnsureUpToDate(ctx, x); err != nil {
return err
}
return recreateTables(x)
diff --git a/cmd/migrate.go b/cmd/migrate.go
index 459805a76d..25d8b50c45 100644
--- a/cmd/migrate.go
+++ b/cmd/migrate.go
@@ -7,9 +7,9 @@ import (
"context"
"code.gitea.io/gitea/models/db"
- "code.gitea.io/gitea/models/migrations"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/services/versioned_migration"
"github.com/urfave/cli/v2"
)
@@ -36,7 +36,7 @@ func runMigrate(ctx *cli.Context) error {
log.Info("Log path: %s", setting.Log.RootPath)
log.Info("Configuration file: %s", setting.CustomConf)
- if err := db.InitEngineWithMigration(context.Background(), migrations.Migrate); err != nil {
+ if err := db.InitEngineWithMigration(context.Background(), versioned_migration.Migrate); err != nil {
log.Fatal("Failed to initialize ORM engine: %v", err)
return err
}
diff --git a/cmd/migrate_storage.go b/cmd/migrate_storage.go
index 2e3aba021d..f9ed140395 100644
--- a/cmd/migrate_storage.go
+++ b/cmd/migrate_storage.go
@@ -13,7 +13,6 @@ import (
actions_model "code.gitea.io/gitea/models/actions"
"code.gitea.io/gitea/models/db"
git_model "code.gitea.io/gitea/models/git"
- "code.gitea.io/gitea/models/migrations"
packages_model "code.gitea.io/gitea/models/packages"
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
@@ -21,6 +20,7 @@ import (
packages_module "code.gitea.io/gitea/modules/packages"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/storage"
+ "code.gitea.io/gitea/services/versioned_migration"
"github.com/urfave/cli/v2"
)
@@ -227,7 +227,7 @@ func runMigrateStorage(ctx *cli.Context) error {
log.Info("Log path: %s", setting.Log.RootPath)
log.Info("Configuration file: %s", setting.CustomConf)
- if err := db.InitEngineWithMigration(context.Background(), migrations.Migrate); err != nil {
+ if err := db.InitEngineWithMigration(context.Background(), versioned_migration.Migrate); err != nil {
log.Fatal("Failed to initialize ORM engine: %v", err)
return err
}