diff options
author | 6543 <6543@obermui.de> | 2020-09-08 00:27:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-07 23:27:17 +0100 |
commit | cfd8e8a489f7f5e80584bd7190a7cb2120e2fa8b (patch) | |
tree | f40b2e1714235edfe74dfb228ec4d08cefff03ae | |
parent | 226aef7e0f9addfd254558eb4fd633946551664b (diff) | |
download | gitea-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.go | 4 | ||||
-rw-r--r-- | models/models.go | 11 | ||||
-rw-r--r-- | models/models_test.go | 6 |
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)) |