* 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>
This commit is contained in:
parent
f9942add50
commit
e0ae0b3b94
1 changed files with 9 additions and 4 deletions
|
@ -7,6 +7,7 @@ package migrations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -290,12 +291,16 @@ Please try upgrading to a lower version first (suggested v1.6.4), then upgrade t
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Downgrading Gitea's database version not supported
|
||||||
if int(v-minDBVersion) > len(migrations) {
|
if int(v-minDBVersion) > len(migrations) {
|
||||||
// User downgraded Gitea.
|
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",
|
||||||
currentVersion.Version = int64(len(migrations) + minDBVersion)
|
v, minDBVersion+len(migrations), minDBVersion+len(migrations))
|
||||||
_, err = x.ID(1).Update(currentVersion)
|
fmt.Fprint(os.Stderr, msg)
|
||||||
return err
|
log.Fatal(msg)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Migrate
|
||||||
for i, m := range migrations[v-minDBVersion:] {
|
for i, m := range migrations[v-minDBVersion:] {
|
||||||
log.Info("Migration[%d]: %s", v+int64(i), m.Description())
|
log.Info("Migration[%d]: %s", v+int64(i), m.Description())
|
||||||
if err = m.Migrate(x); err != nil {
|
if err = m.Migrate(x); err != nil {
|
||||||
|
|
Reference in a new issue