From cfd8e8a489f7f5e80584bd7190a7cb2120e2fa8b Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 8 Sep 2020 00:27:17 +0200 Subject: [PATCH] gitea dump: include version & Check InstallLock (#12760) * gitea dump: include version * Check InstallLock (close #12759) * fix test * fix lint --- cmd/dump.go | 4 ++++ models/models.go | 11 +++++++++++ models/models_test.go | 6 ++++++ 3 files changed, 21 insertions(+) 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))