forked from NYANDEV/forgejo
This commit is contained in:
parent
b6fb082b78
commit
c5ec66a8a3
3 changed files with 21 additions and 3 deletions
|
@ -51,8 +51,9 @@ type Engine interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
x *xorm.Engine
|
x *xorm.Engine
|
||||||
tables []interface{}
|
supportedDatabases = []string{"mysql", "postgres", "mssql"}
|
||||||
|
tables []interface{}
|
||||||
|
|
||||||
// HasEngine specifies if we have a xorm.Engine
|
// HasEngine specifies if we have a xorm.Engine
|
||||||
HasEngine bool
|
HasEngine bool
|
||||||
|
@ -350,7 +351,9 @@ func Ping() error {
|
||||||
func DumpDatabase(filePath string, dbType string) error {
|
func DumpDatabase(filePath string, dbType string) error {
|
||||||
var tbs []*core.Table
|
var tbs []*core.Table
|
||||||
for _, t := range tables {
|
for _, t := range tables {
|
||||||
tbs = append(tbs, x.TableInfo(t).Table)
|
t := x.TableInfo(t)
|
||||||
|
t.Table.Name = t.Name
|
||||||
|
tbs = append(tbs, t.Table)
|
||||||
}
|
}
|
||||||
if len(dbType) > 0 {
|
if len(dbType) > 0 {
|
||||||
return x.DumpTablesToFile(tbs, filePath, core.DbType(dbType))
|
return x.DumpTablesToFile(tbs, filePath, core.DbType(dbType))
|
||||||
|
|
|
@ -12,4 +12,5 @@ import (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
EnableSQLite3 = true
|
EnableSQLite3 = true
|
||||||
|
supportedDatabases = append(supportedDatabases, "sqlite3")
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
@ -93,3 +96,14 @@ func Test_getPostgreSQLConnectionString(t *testing.T) {
|
||||||
assert.Equal(t, test.Output, connStr)
|
assert.Equal(t, test.Output, connStr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDumpDatabase(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
|
|
||||||
|
dir, err := ioutil.TempDir(os.TempDir(), "dump")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
for _, dbType := range supportedDatabases {
|
||||||
|
assert.NoError(t, DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue