Skip to content

Commit a9dcb3e

Browse files
committed
only sync if needed
1 parent cba3390 commit a9dcb3e

6 files changed

Lines changed: 12 additions & 10 deletions

File tree

cmd/doctor.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,9 @@ func runDoctorAuthorizedKeys(ctx *cli.Context) ([]string, error) {
365365
}
366366

367367
func runDoctorCheckDBVersion(ctx *cli.Context) ([]string, error) {
368-
if err := models.NewEngine(context.Background(), migrations.EnsureUpToDate); err != nil {
368+
if err := models.NewEngine(context.Background(), migrations.EnsureUpToDate, false); err != nil {
369369
if ctx.Bool("fix") {
370-
return []string{fmt.Sprintf("WARN: Got Error %v during ensure up to date", err), "Attempting to migrate to the latest DB version to fix this."}, models.NewEngine(context.Background(), migrations.Migrate)
370+
return []string{fmt.Sprintf("WARN: Got Error %v during ensure up to date", err), "Attempting to migrate to the latest DB version to fix this."}, models.NewEngine(context.Background(), migrations.Migrate, true)
371371
}
372372
return nil, err
373373
}
@@ -507,7 +507,7 @@ func runDoctorCheckDBConsistency(ctx *cli.Context) ([]string, error) {
507507
var outdatedDB bool
508508

509509
// make sure DB version is uptodate
510-
if err := models.NewEngine(context.Background(), migrations.EnsureUpToDate); err != nil {
510+
if err := models.NewEngine(context.Background(), migrations.EnsureUpToDate, false); err != nil {
511511
results = append(results, "Warning: model version on the database does not match the current Gitea version. Model consistency can be checked but not fixed until the database is upgraded.")
512512
outdatedDB = true
513513
}

cmd/migrate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func runMigrate(ctx *cli.Context) error {
3434
log.Trace("Log path: %s", setting.LogRootPath)
3535
setting.InitDBConfig()
3636

37-
if err := models.NewEngine(context.Background(), migrations.Migrate); err != nil {
37+
if err := models.NewEngine(context.Background(), migrations.Migrate, true); err != nil {
3838
log.Fatal("Failed to initialize ORM engine: %v", err)
3939
return err
4040
}

contrib/pr/checkout.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func runPR() {
9999
var helper testfixtures.Helper = &testfixtures.SQLite{}
100100
models.NewEngine(context.Background(), func(_ *xorm.Engine) error {
101101
return nil
102-
})
102+
}, true)
103103
models.HasEngine = true
104104
//x.ShowSQL(true)
105105
err = models.InitFixtures(

integrations/migration-test/migration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func doMigrationTest(t *testing.T, version string) {
254254
err := models.SetEngine()
255255
assert.NoError(t, err)
256256

257-
err = models.NewEngine(context.Background(), wrappedMigrate)
257+
err = models.NewEngine(context.Background(), wrappedMigrate, true)
258258
assert.NoError(t, err)
259259
currentEngine.Close()
260260
}

models/models.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ func SetEngine() (err error) {
182182
}
183183

184184
// NewEngine initializes a new xorm.Engine
185-
func NewEngine(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err error) {
185+
func NewEngine(ctx context.Context, migrateFunc func(*xorm.Engine) error, sync bool) (err error) {
186186
if err = SetEngine(); err != nil {
187187
return err
188188
}
@@ -197,8 +197,10 @@ func NewEngine(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err e
197197
return fmt.Errorf("migrate: %v", err)
198198
}
199199

200-
if err = x.StoreEngine("InnoDB").Sync2(tables...); err != nil {
201-
return fmt.Errorf("sync database struct error: %v", err)
200+
if sync {
201+
if err = x.StoreEngine("InnoDB").Sync2(tables...); err != nil {
202+
return fmt.Errorf("sync database struct error: %v", err)
203+
}
202204
}
203205

204206
return nil

routers/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func initDBEngine(ctx context.Context) (err error) {
6969
default:
7070
}
7171
log.Info("ORM engine initialization attempt #%d/%d...", i+1, setting.Database.DBConnectRetries)
72-
if err = models.NewEngine(ctx, migrations.Migrate); err == nil {
72+
if err = models.NewEngine(ctx, migrations.Migrate, true); err == nil {
7373
break
7474
} else if i == setting.Database.DBConnectRetries-1 {
7575
return err

0 commit comments

Comments
 (0)