aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-10-12 16:35:56 +0200
committerGitHub <noreply@github.com>2020-10-12 15:35:56 +0100
commit95136387159e116508b98e1aaa2db40993c266ad (patch)
treec70405cf19d1af73c2b57bc78e2472ab742d7fbb /models
parentc752ccee6425091cf17c98029f039f3fe66552b4 (diff)
downloadgitea-95136387159e116508b98e1aaa2db40993c266ad.tar.gz
gitea-95136387159e116508b98e1aaa2db40993c266ad.zip
Prohibit automatic downgrades (#13108)
Prohibit automatic downgrades by checking the version of the db and warning if the version number should be lower. Close #13107 Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com>
Diffstat (limited to 'models')
-rw-r--r--models/migrations/migrations.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index d36b984d93..dda8c00941 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -7,6 +7,7 @@ package migrations
import (
"fmt"
+ "os"
"reflect"
"regexp"
"strings"
@@ -315,12 +316,16 @@ Please try upgrading to a lower version first (suggested v1.6.4), then upgrade t
return nil
}
+ // Downgraded Gitea not supported
if int(v-minDBVersion) > len(migrations) {
- // User downgraded Gitea.
- currentVersion.Version = int64(len(migrations) + minDBVersion)
- _, err = x.ID(1).Update(currentVersion)
- return err
+ msg := fmt.Sprintf("Downgrading Gitea from '%d' to '%d' is not supported and may result in loss of data integrity.\nIf you really know what you're doing, execute `UPDATE version SET version=%d WHERE id=1;`\n",
+ v, minDBVersion+len(migrations), minDBVersion+len(migrations))
+ fmt.Fprint(os.Stderr, msg)
+ log.Fatal(msg)
+ return nil
}
+
+ // Migrate
for i, m := range migrations[v-minDBVersion:] {
log.Info("Migration[%d]: %s", v+int64(i), m.Description())
if err = m.Migrate(x); err != nil {