aboutsummaryrefslogtreecommitdiffstats
path: root/models/db/engine_dump.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2024-12-21 00:11:38 +0800
committerGitHub <noreply@github.com>2024-12-20 16:11:38 +0000
commit1c9b022c4d9174c3a96fb323593241b19fc245aa (patch)
tree0f976f42e5437472d4c872579f46732fbd2d8242 /models/db/engine_dump.go
parent7580bd98c1c9c108500b0c295d5fb6aa057170d4 (diff)
downloadgitea-1c9b022c4d9174c3a96fb323593241b19fc245aa.tar.gz
gitea-1c9b022c4d9174c3a96fb323593241b19fc245aa.zip
Refactor db package and remove unnecessary `DumpTables` (#32930)
Diffstat (limited to 'models/db/engine_dump.go')
-rw-r--r--models/db/engine_dump.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/models/db/engine_dump.go b/models/db/engine_dump.go
new file mode 100644
index 0000000000..63f2d4e093
--- /dev/null
+++ b/models/db/engine_dump.go
@@ -0,0 +1,33 @@
+// Copyright 2024 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package db
+
+import "xorm.io/xorm/schemas"
+
+// DumpDatabase dumps all data from database according the special database SQL syntax to file system.
+func DumpDatabase(filePath, dbType string) error {
+ var tbs []*schemas.Table
+ for _, t := range registeredModels {
+ t, err := xormEngine.TableInfo(t)
+ if err != nil {
+ return err
+ }
+ tbs = append(tbs, t)
+ }
+
+ type Version struct {
+ ID int64 `xorm:"pk autoincr"`
+ Version int64
+ }
+ t, err := xormEngine.TableInfo(&Version{})
+ if err != nil {
+ return err
+ }
+ tbs = append(tbs, t)
+
+ if dbType != "" {
+ return xormEngine.DumpTablesToFile(tbs, filePath, schemas.DBType(dbType))
+ }
+ return xormEngine.DumpTablesToFile(tbs, filePath)
+}