From 4a3dc6c774c96cba6f1e5236b805bffe18f04124 Mon Sep 17 00:00:00 2001 From: Joe Chen Date: Tue, 14 Jun 2022 15:47:11 +0800 Subject: db: skip auto migrate for existing "version" table (#7057) --- internal/db/migrations/migrations.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'internal/db/migrations/migrations.go') diff --git a/internal/db/migrations/migrations.go b/internal/db/migrations/migrations.go index 4f93b9c5..9d22681d 100644 --- a/internal/db/migrations/migrations.go +++ b/internal/db/migrations/migrations.go @@ -58,13 +58,17 @@ var migrations = []Migration{ // Migrate migrates the database schema and/or data to the current version. func Migrate(db *gorm.DB) error { - err := db.AutoMigrate(new(Version)) - if err != nil { - return errors.Wrap(err, `auto migrate "version" table`) + // NOTE: GORM has problem migrating tables that happen to have columns with the + // same name, see https://github.com/gogs/gogs/issues/7056. + if !db.Migrator().HasTable(new(Version)) { + err := db.AutoMigrate(new(Version)) + if err != nil { + return errors.Wrap(err, `auto migrate "version" table`) + } } var current Version - err = db.Where("id = ?", 1).First(¤t).Error + err := db.Where("id = ?", 1).First(¤t).Error if err == gorm.ErrRecordNotFound { err = db.Create( &Version{ -- cgit v1.2.3