aboutsummaryrefslogtreecommitdiffstats
path: root/models/db/engine_dump.go
blob: 63f2d4e093cbfa1d566213d169c83bce8a1b803c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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)
}