[UPGRADE] run sanity checks before the database is upgraded

(cherry picked from commit 69741e4e66)
(cherry picked from commit 2a3c7b09cb)
This commit is contained in:
Earl Warren 2023-08-09 00:05:06 +02:00
parent 1f774145fc
commit a1554c1168
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
4 changed files with 82 additions and 0 deletions

View file

@ -28,6 +28,7 @@ import (
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
forgejo_services "code.gitea.io/gitea/services/forgejo"
"xorm.io/xorm"
"xorm.io/xorm/names"
@ -583,6 +584,7 @@ func Migrate(x *xorm.Engine) error {
return fmt.Errorf("sync: %w", err)
}
var previousVersion int64
currentVersion := &Version{ID: 1}
has, err := x.Get(currentVersion)
if err != nil {
@ -596,6 +598,8 @@ func Migrate(x *xorm.Engine) error {
if _, err = x.InsertOne(currentVersion); err != nil {
return fmt.Errorf("insert: %w", err)
}
} else {
previousVersion = currentVersion.Version
}
v := currentVersion.Version
@ -623,6 +627,10 @@ Please try upgrading to a lower version first (suggested v1.6.4), then upgrade t
}
}
if err := forgejo_services.PreMigrationSanityChecks(x, previousVersion, setting.CfgProvider); err != nil {
return err
}
// Migrate
for i, m := range migrations[v-minDBVersion:] {
log.Info("Migration[%d]: %s", v+int64(i), m.Description())