mirror of
https://gitee.com/dromara/mayfly-go
synced 2026-01-03 21:26:35 +08:00
feat: 实现数据库备份与恢复
This commit is contained in:
@@ -1,17 +1,57 @@
|
||||
package application
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"mayfly-go/internal/db/domain/repository"
|
||||
"mayfly-go/internal/db/infrastructure/persistence"
|
||||
tagapp "mayfly-go/internal/tag/application"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var (
|
||||
instanceApp Instance = newInstanceApp(persistence.GetInstanceRepo())
|
||||
dbApp Db = newDbApp(persistence.GetDbRepo(), persistence.GetDbSqlRepo(), instanceApp, tagapp.GetTagTreeApp())
|
||||
dbSqlExecApp DbSqlExec = newDbSqlExecApp(persistence.GetDbSqlExecRepo())
|
||||
dbSqlApp DbSql = newDbSqlApp(persistence.GetDbSqlRepo())
|
||||
instanceApp Instance
|
||||
dbApp Db
|
||||
dbSqlExecApp DbSqlExec
|
||||
dbSqlApp DbSql
|
||||
dbBackupApp *DbBackupApp
|
||||
dbBackupHistoryApp *DbBackupHistoryApp
|
||||
dbRestoreApp *DbRestoreApp
|
||||
dbRestoreHistoryApp *DbRestoreHistoryApp
|
||||
)
|
||||
|
||||
var repositories *repository.Repositories
|
||||
|
||||
func Init() {
|
||||
sync.OnceFunc(func() {
|
||||
repositories = &repository.Repositories{
|
||||
Instance: persistence.GetInstanceRepo(),
|
||||
Backup: persistence.NewDbBackupRepo(),
|
||||
BackupHistory: persistence.NewDbBackupHistoryRepo(),
|
||||
Restore: persistence.NewDbRestoreRepo(),
|
||||
RestoreHistory: persistence.NewDbRestoreHistoryRepo(),
|
||||
Binlog: persistence.NewDbBinlogRepo(),
|
||||
BinlogHistory: persistence.NewDbBinlogHistoryRepo(),
|
||||
}
|
||||
var err error
|
||||
instanceRepo := persistence.GetInstanceRepo()
|
||||
instanceApp = newInstanceApp(instanceRepo)
|
||||
dbApp = newDbApp(persistence.GetDbRepo(), persistence.GetDbSqlRepo(), instanceApp, tagapp.GetTagTreeApp())
|
||||
dbSqlExecApp = newDbSqlExecApp(persistence.GetDbSqlExecRepo())
|
||||
dbSqlApp = newDbSqlApp(persistence.GetDbSqlRepo())
|
||||
|
||||
dbBackupApp, err = newDbBackupApp(repositories)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("初始化 dbBackupApp 失败: %v", err))
|
||||
}
|
||||
dbRestoreApp, err = newDbRestoreApp(repositories)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("初始化 dbRestoreApp 失败: %v", err))
|
||||
}
|
||||
dbBackupHistoryApp, err = newDbBackupHistoryApp(repositories)
|
||||
dbRestoreHistoryApp, err = newDbRestoreHistoryApp(repositories)
|
||||
})()
|
||||
}
|
||||
|
||||
func GetInstanceApp() Instance {
|
||||
return instanceApp
|
||||
}
|
||||
@@ -27,3 +67,19 @@ func GetDbSqlApp() DbSql {
|
||||
func GetDbSqlExecApp() DbSqlExec {
|
||||
return dbSqlExecApp
|
||||
}
|
||||
|
||||
func GetDbBackupApp() *DbBackupApp {
|
||||
return dbBackupApp
|
||||
}
|
||||
|
||||
func GetDbBackupHistoryApp() *DbBackupHistoryApp {
|
||||
return dbBackupHistoryApp
|
||||
}
|
||||
|
||||
func GetDbRestoreApp() *DbRestoreApp {
|
||||
return dbRestoreApp
|
||||
}
|
||||
|
||||
func GetDbRestoreHistoryApp() *DbRestoreHistoryApp {
|
||||
return dbRestoreHistoryApp
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user