diff options
author | 6543 | 2020-10-12 20:24:43 +0200 |
---|---|---|
committer | GitHub | 2020-10-12 21:24:43 +0300 |
commit | e0ae0b3b945d1a0c95d765cceb954eaa2a0060d2 (patch) | |
tree | 05a2d59a973ed0f424f4b7184cb8af1d148958eb | |
parent | f9942add5042ad93f9b692f4760fd69d6816d0b8 (diff) |
[Backport] Prohibit automatic downgrades (#13108) (#13111)
* Prohibit automatic downgrades
* do not only log, print to stderr too
* Update models/migrations/migrations.go
* Update models/migrations/migrations.go
Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com>
* a nit
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com>
-rw-r--r-- | models/migrations/migrations.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 869661aee..b25b6eebd 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -7,6 +7,7 @@ package migrations import ( "fmt" + "os" "regexp" "strings" @@ -290,12 +291,16 @@ Please try upgrading to a lower version first (suggested v1.6.4), then upgrade t return nil } + // Downgrading Gitea's database version 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 database version 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 { |