mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-06-02 00:09:45 +08:00
feat: 新增 SAP HANA 数据库备份支持和 FTP 存储后端
后端变更: - 新增 SAP HANA 备份 Runner (saphana_runner.go),使用 hdbsql CLI 工具执行数据库导出/恢复 - 新增 FTP 存储 Provider (storage/ftp/provider.go),支持 FTP/FTPS 协议上传下载备份文件 - 在 storage/types.go 中添加 FTP 类型常量和 FTPConfig 配置结构 - 在 app.go 中注册 FTP Storage Factory 和 SAP HANA Backup Runner - 添加 github.com/jlaffaye/ftp 依赖 前端变更: - BackupTaskType 联合类型新增 'saphana',默认端口 30015 - StorageTargetType 联合类型新增 'ftp' - 备份任务表单支持 SAP HANA 类型选择及数据库连接配置 - 存储目标表单新增 FTP 配置字段(主机/端口/用户名/密码/基础目录/TLS) 参考:backint_minio1.0.0/ Java 实现
This commit is contained in:
@@ -106,11 +106,11 @@ export function BackupTaskFormDrawer({ visible, loading, initialValue, storageTa
|
||||
type: value,
|
||||
sourcePath: value === 'file' ? current.sourcePath : '',
|
||||
excludePatterns: value === 'file' ? current.excludePatterns : [],
|
||||
dbHost: value === 'mysql' || value === 'postgresql' ? current.dbHost : '',
|
||||
dbPort: value === 'mysql' || value === 'postgresql' ? current.dbPort || getDefaultPort(value) : 0,
|
||||
dbUser: value === 'mysql' || value === 'postgresql' ? current.dbUser : '',
|
||||
dbPassword: value === 'mysql' || value === 'postgresql' ? current.dbPassword : '',
|
||||
dbName: value === 'mysql' || value === 'postgresql' ? current.dbName : '',
|
||||
dbHost: value === 'mysql' || value === 'postgresql' || value === 'saphana' ? current.dbHost : '',
|
||||
dbPort: value === 'mysql' || value === 'postgresql' || value === 'saphana' ? current.dbPort || getDefaultPort(value) : 0,
|
||||
dbUser: value === 'mysql' || value === 'postgresql' || value === 'saphana' ? current.dbUser : '',
|
||||
dbPassword: value === 'mysql' || value === 'postgresql' || value === 'saphana' ? current.dbPassword : '',
|
||||
dbName: value === 'mysql' || value === 'postgresql' || value === 'saphana' ? current.dbName : '',
|
||||
dbPath: value === 'sqlite' ? current.dbPath : '',
|
||||
}))
|
||||
if (value !== 'file') {
|
||||
|
||||
@@ -5,6 +5,7 @@ export const backupTaskTypeOptions = [
|
||||
{ label: 'MySQL', value: 'mysql' },
|
||||
{ label: 'SQLite', value: 'sqlite' },
|
||||
{ label: 'PostgreSQL', value: 'postgresql' },
|
||||
{ label: 'SAP HANA', value: 'saphana' },
|
||||
] as const
|
||||
|
||||
export const backupCompressionOptions = [
|
||||
@@ -22,6 +23,8 @@ export function getBackupTaskTypeLabel(type: BackupTaskType) {
|
||||
return 'SQLite'
|
||||
case 'postgresql':
|
||||
return 'PostgreSQL'
|
||||
case 'saphana':
|
||||
return 'SAP HANA'
|
||||
default:
|
||||
return type
|
||||
}
|
||||
@@ -64,7 +67,7 @@ export function isSQLiteBackupTask(type: BackupTaskType) {
|
||||
}
|
||||
|
||||
export function isDatabaseBackupTask(type: BackupTaskType) {
|
||||
return type === 'mysql' || type === 'postgresql'
|
||||
return type === 'mysql' || type === 'postgresql' || type === 'saphana'
|
||||
}
|
||||
|
||||
export function getDefaultPort(type: BackupTaskType) {
|
||||
@@ -73,6 +76,8 @@ export function getDefaultPort(type: BackupTaskType) {
|
||||
return 3306
|
||||
case 'postgresql':
|
||||
return 5432
|
||||
case 'saphana':
|
||||
return 30015
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user