aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-09-08 00:27:17 +0200
committerGitHub <noreply@github.com>2020-09-07 23:27:17 +0100
commitcfd8e8a489f7f5e80584bd7190a7cb2120e2fa8b (patch)
treef40b2e1714235edfe74dfb228ec4d08cefff03ae
parent226aef7e0f9addfd254558eb4fd633946551664b (diff)
downloadgitea-cfd8e8a489f7f5e80584bd7190a7cb2120e2fa8b.tar.gz
gitea-cfd8e8a489f7f5e80584bd7190a7cb2120e2fa8b.zip
gitea dump: include version & Check InstallLock (#12760)
* gitea dump: include version * Check InstallLock (close #12759) * fix test * fix lint
-rw-r--r--cmd/dump.go4
-rw-r--r--models/models.go11
-rw-r--r--models/models_test.go6
3 files changed, 21 insertions, 0 deletions
diff --git a/cmd/dump.go b/cmd/dump.go
index c647341221..0e41ecb8c7 100644
--- a/cmd/dump.go
+++ b/cmd/dump.go
@@ -186,6 +186,10 @@ func runDump(ctx *cli.Context) error {
if _, err := setting.Cfg.Section("log.console").NewKey("STDERR", "true"); err != nil {
fatal("Setting console logger to stderr failed: %v", err)
}
+ if !setting.InstallLock {
+ log.Error("Is '%s' really the right config path?\n", setting.CustomConf)
+ return fmt.Errorf("gitea is not initialized")
+ }
setting.NewServices() // cannot access session settings otherwise
err := models.SetEngine()
diff --git a/models/models.go b/models/models.go
index 27a0c660be..32df9bdfd8 100644
--- a/models/models.go
+++ b/models/models.go
@@ -302,6 +302,17 @@ func DumpDatabase(filePath string, dbType string) error {
}
tbs = append(tbs, t)
}
+
+ type Version struct {
+ ID int64 `xorm:"pk autoincr"`
+ Version int64
+ }
+ t, err := x.TableInfo(Version{})
+ if err != nil {
+ return err
+ }
+ tbs = append(tbs, t)
+
if len(dbType) > 0 {
return x.DumpTablesToFile(tbs, filePath, schemas.DBType(dbType))
}
diff --git a/models/models_test.go b/models/models_test.go
index 37e9a352f8..2441ad7fb0 100644
--- a/models/models_test.go
+++ b/models/models_test.go
@@ -21,6 +21,12 @@ func TestDumpDatabase(t *testing.T) {
dir, err := ioutil.TempDir(os.TempDir(), "dump")
assert.NoError(t, err)
+ type Version struct {
+ ID int64 `xorm:"pk autoincr"`
+ Version int64
+ }
+ assert.NoError(t, x.Sync2(Version{}))
+
for _, dbName := range setting.SupportedDatabases {
dbType := setting.GetDBTypeByName(dbName)
assert.NoError(t, DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType))