fix(backup): enhance backup configuration and history management

This commit is contained in:
二丫讲梵 authored and GitHub committed 2026-09-09 00:15:12 +08:00
1 parent 789740c9be
commit 69ef418d5f
23 files changed
+623 -92

No files matched your search

+11
View File
@@ -7824,6 +7824,10 @@ export default {
missingConnection: "Missing connection",
destination: "Destination directory",
selectDestination: "Select backup directory",
runDirectoryPattern: "Run directory template",
runDirectoryPatternHint: "A relative path under the destination. Use {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'}, and {'{'}runId{'}'}. The default includes {'{'}runId{'}'} for extra isolation. Example: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "Directory preview",
runDirectoryPatternInvalid: "Use a relative path without . or .. segments.",
compression: "Compression",
compressionNone: "No compression (.sql)",
compressionGzip: "Gzip (.sql.gz)",
@@ -7831,6 +7835,7 @@ export default {
noMatchingConnections: "No matching connections",
searchDatabases: "Search databases…",
noMatchingDatabases: "No matching databases",
databaseListLoadFailed: "Unable to load databases for {name}. Check this connection or choose another one.",
databases: "Databases",
allDatabases: "All databases",
databaseCount: "{count} databases",
@@ -7883,6 +7888,10 @@ export default {
backupStatus: "Backup status",
allStatuses: "All statuses",
noFilteredHistory: "No matching backup records",
selectAllFiltered: "Select all filtered",
selectRun: "Select {name}",
selectedRuns: "{count} selected",
deleteSelected: "Delete selected",
showFiles: "Show backup files",
scheduledTrigger: "Scheduled",
manualTrigger: "Manual",
@@ -7896,7 +7905,9 @@ export default {
restore: "Restore",
deleteBackup: "Delete backup",
deleteBackupConfirm: "Delete this backup and its {count} SQL files? This cannot be undone.",
deleteBackupsConfirm: "Delete {count} backups and their {files} SQL files? This cannot be undone.",
backupDeleted: "Backup deleted",
backupsDeleted: "Deleted {count} backups",
runSuccess: "Backup completed with {count} files",
runCancelled: "Backup cancelled",
runFailed: "Backup failed: {error}",
+12
View File
@@ -8844,6 +8844,11 @@ export default withEnglishFallback({
missingConnection: "La conexión ya no existe",
destination: "Directorio de copia de seguridad",
selectDestination: "Seleccionar directorio de copia de seguridad",
runDirectoryPattern: "Plantilla de directorio de ejecución",
runDirectoryPatternHint:
"Ruta relativa dentro del directorio de destino. Use {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'} y {'{'}runId{'}'}. La plantilla predeterminada incluye {'{'}runId{'}'} para un mejor aislamiento. Ejemplo: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "Vista previa del directorio",
runDirectoryPatternInvalid: "Use una ruta relativa sin segmentos . ni ..",
compression: "Compresión",
compressionNone: "Sin compresión (.sql)",
compressionGzip: "Compresión Gzip (.sql.gz)",
@@ -8851,6 +8856,7 @@ export default withEnglishFallback({
noMatchingConnections: "No hay conexiones coincidentes",
searchDatabases: "Buscar bases de datos…",
noMatchingDatabases: "No hay bases de datos coincidentes",
databaseListLoadFailed: "No se pudieron cargar las bases de datos de {name}. Compruebe esta conexión o elija otra.",
databases: "Bases de datos",
allDatabases: "Todas las bases de datos",
databaseCount: "{count} bases de datos",
@@ -8903,6 +8909,10 @@ export default withEnglishFallback({
backupStatus: "Estado de la copia",
allStatuses: "Todos los estados",
noFilteredHistory: "No hay registros de copia de seguridad coincidentes",
selectAllFiltered: "Seleccionar todos los resultados filtrados",
selectRun: "Seleccionar {name}",
selectedRuns: "{count} seleccionados",
deleteSelected: "Eliminar seleccionados",
showFiles: "Mostrar archivos de copia",
scheduledTrigger: "Ejecución programada",
manualTrigger: "Ejecución manual",
@@ -8915,7 +8925,9 @@ export default withEnglishFallback({
restore: "Restaurar",
deleteBackup: "Eliminar copia de seguridad",
deleteBackupConfirm: "¿Está seguro de que desea eliminar esta copia de seguridad y sus {count} archivos SQL? Esta acción no se puede deshacer.",
deleteBackupsConfirm: "¿Está seguro de que desea eliminar {count} copias de seguridad y sus {files} archivos SQL? Esta acción no se puede deshacer.",
backupDeleted: "Copia de seguridad eliminada",
backupsDeleted: "Se eliminaron {count} copias de seguridad",
runSuccess: "Copia de seguridad completada, se generaron {count} archivos",
runCancelled: "Copia de seguridad cancelada",
runFailed: "Copia de seguridad fallida: {error}",
+12
View File
@@ -8845,6 +8845,11 @@ export default withEnglishFallback({
missingConnection: "Connessione non più esistente",
destination: "Directory di backup",
selectDestination: "Seleziona directory di backup",
runDirectoryPattern: "Modello directory di esecuzione",
runDirectoryPatternHint:
"Percorso relativo nella directory di destinazione. Usa {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'} e {'{'}runId{'}'}. Il modello predefinito include {'{'}runId{'}'} per un maggiore isolamento. Esempio: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "Anteprima directory",
runDirectoryPatternInvalid: "Usa un percorso relativo senza segmenti . o ..",
compression: "Compressione",
compressionNone: "Nessuna compressione (.sql)",
compressionGzip: "Compressione Gzip (.sql.gz)",
@@ -8852,6 +8857,7 @@ export default withEnglishFallback({
noMatchingConnections: "Nessuna connessione corrispondente",
searchDatabases: "Cerca database…",
noMatchingDatabases: "Nessun database corrispondente",
databaseListLoadFailed: "Impossibile caricare i database per {name}. Controlla la connessione o scegline un'altra.",
databases: "Database",
allDatabases: "Tutti i database",
databaseCount: "{count} database",
@@ -8904,6 +8910,10 @@ export default withEnglishFallback({
backupStatus: "Stato del backup",
allStatuses: "Tutti gli stati",
noFilteredHistory: "Nessun record di backup corrispondente",
selectAllFiltered: "Seleziona tutti i risultati filtrati",
selectRun: "Seleziona {name}",
selectedRuns: "{count} selezionati",
deleteSelected: "Elimina selezionati",
showFiles: "Mostra file di backup",
scheduledTrigger: "Esecuzione programmata",
manualTrigger: "Esecuzione manuale",
@@ -8916,7 +8926,9 @@ export default withEnglishFallback({
restore: "Ripristina",
deleteBackup: "Elimina backup",
deleteBackupConfirm: "Eliminare questo backup e i suoi {count} file SQL? Questa operazione non può essere annullata.",
deleteBackupsConfirm: "Eliminare {count} backup e i loro {files} file SQL? Questa operazione non può essere annullata.",
backupDeleted: "Backup eliminato",
backupsDeleted: "Eliminati {count} backup",
runSuccess: "Backup completato, generati {count} file",
runCancelled: "Backup annullato",
runFailed: "Backup fallito: {error}",
+12
View File
@@ -8896,6 +8896,11 @@ export default withEnglishFallback({
missingConnection: "接続が存在しません",
destination: "バックアップ先",
selectDestination: "バックアップ先を選択",
runDirectoryPattern: "実行ディレクトリテンプレート",
runDirectoryPatternHint:
"バックアップ先配下の相対パスです。{'{'}schedule{'}'}、{'{'}date{'}'}、{'{'}timestamp{'}'}、{'{'}runId{'}'} を使用できます。既定のテンプレートには、より確実に分離するため {'{'}runId{'}'} が含まれます。例:{'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "ディレクトリのプレビュー",
runDirectoryPatternInvalid: ". または .. を含まない相対パスを入力してください。",
compression: "圧縮",
compressionNone: "圧縮なし(.sql)",
compressionGzip: "Gzip 圧縮(.sql.gz)",
@@ -8903,6 +8908,7 @@ export default withEnglishFallback({
noMatchingConnections: "一致する接続がありません",
searchDatabases: "データベースを検索…",
noMatchingDatabases: "一致するデータベースがありません",
databaseListLoadFailed: "{name} のデータベースを読み込めません。接続を確認するか、別の接続を選択してください。",
databases: "データベース",
allDatabases: "すべてのデータベース",
databaseCount: "{count} 個のデータベース",
@@ -8955,6 +8961,10 @@ export default withEnglishFallback({
backupStatus: "バックアップ状態",
allStatuses: "すべての状態",
noFilteredHistory: "一致するバックアップ記録がありません",
selectAllFiltered: "絞り込み結果をすべて選択",
selectRun: "{name} を選択",
selectedRuns: "{count} 件を選択中",
deleteSelected: "選択項目を削除",
showFiles: "バックアップファイルを表示",
scheduledTrigger: "定期実行",
manualTrigger: "手動実行",
@@ -8967,7 +8977,9 @@ export default withEnglishFallback({
restore: "復元",
deleteBackup: "バックアップを削除",
deleteBackupConfirm: "このバックアップとその {count} 個の SQL ファイルを削除してもよろしいですか?この操作は元に戻せません。",
deleteBackupsConfirm: "{count} 件のバックアップと、その {files} 個の SQL ファイルを削除してもよろしいですか?この操作は元に戻せません。",
backupDeleted: "バックアップが削除されました",
backupsDeleted: "{count} 件のバックアップを削除しました",
runSuccess: "バックアップが完了しました。{count} 個のファイルが生成されました。",
runCancelled: "バックアップがキャンセルされました",
runFailed: "バックアップに失敗しました:{error}",
+12
View File
@@ -7098,6 +7098,11 @@ export default withEnglishFallback({
missingConnection: "연결 누락",
destination: "대상 디렉터리",
selectDestination: "백업 디렉터리 선택",
runDirectoryPattern: "실행 디렉터리 템플릿",
runDirectoryPatternHint:
"대상 디렉터리 아래의 상대 경로입니다. {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'}, {'{'}runId{'}'}를 사용할 수 있습니다. 기본 템플릿에는 더 나은 분리를 위해 {'{'}runId{'}'}가 포함됩니다. 예: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "디렉터리 미리 보기",
runDirectoryPatternInvalid: ". 또는 .. 경로 세그먼트가 없는 상대 경로를 사용하세요.",
databases: "데이터베이스",
allDatabases: "모든 데이터베이스",
databaseCount: "데이터베이스 {count}개",
@@ -7153,7 +7158,9 @@ export default withEnglishFallback({
restore: "복원",
deleteBackup: "백업 삭제",
deleteBackupConfirm: "이 백업과 SQL 파일 {count}개를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
deleteBackupsConfirm: "{count}개의 백업과 SQL 파일 {files}개를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
backupDeleted: "백업을 삭제했습니다",
backupsDeleted: "{count}개의 백업을 삭제했습니다",
runSuccess: "백업 완료 (파일 {count}개)",
runCancelled: "백업 취소됨",
runFailed: "백업 실패: {error}",
@@ -7180,6 +7187,7 @@ export default withEnglishFallback({
noMatchingConnections: "일치하는 연결을 찾을 수 없습니다.",
searchDatabases: "데이터베이스 검색…",
noMatchingDatabases: "일치하는 데이터베이스를 찾을 수 없습니다.",
databaseListLoadFailed: "{name}의 데이터베이스를 불러올 수 없습니다. 연결을 확인하거나 다른 연결을 선택하세요.",
cancelling: "취소 중…",
cancelRequested: "백업 취소가 요청되었습니다. 현재 작업을 중지하는 중입니다.",
allConnections: "모든 연결",
@@ -7189,6 +7197,10 @@ export default withEnglishFallback({
backupStatus: "백업 상태",
allStatuses: "모든 상태",
noFilteredHistory: "일치하는 백업 기록이 없습니다.",
selectAllFiltered: "현재 필터 결과 모두 선택",
selectRun: "{name} 선택",
selectedRuns: "{count}개 선택됨",
deleteSelected: "선택 항목 삭제",
},
mqTopics: {
title: "토픽",
+12
View File
@@ -8846,6 +8846,11 @@ export default withEnglishFallback({
missingConnection: "Conexão não existe mais",
destination: "Diretório de backup",
selectDestination: "Selecionar diretório de backup",
runDirectoryPattern: "Modelo de diretório de execução",
runDirectoryPatternHint:
"Um caminho relativo dentro do diretório de destino. Use {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'} e {'{'}runId{'}'}. O modelo padrão inclui {'{'}runId{'}'} para maior isolamento. Exemplo: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "Prévia do diretório",
runDirectoryPatternInvalid: "Use um caminho relativo sem segmentos . ou ..",
compression: "Compactação",
compressionNone: "Sem compactação (.sql)",
compressionGzip: "Compactação Gzip (.sql.gz)",
@@ -8853,6 +8858,7 @@ export default withEnglishFallback({
noMatchingConnections: "Nenhuma conexão correspondente",
searchDatabases: "Pesquisar bancos de dados…",
noMatchingDatabases: "Nenhum banco de dados correspondente",
databaseListLoadFailed: "Não foi possível carregar os bancos de dados de {name}. Verifique esta conexão ou escolha outra.",
databases: "Bancos de dados",
allDatabases: "Todos os bancos de dados",
databaseCount: "{count} bancos de dados",
@@ -8905,6 +8911,10 @@ export default withEnglishFallback({
backupStatus: "Status do backup",
allStatuses: "Todos os status",
noFilteredHistory: "Nenhum registro de backup correspondente",
selectAllFiltered: "Selecionar todos os resultados filtrados",
selectRun: "Selecionar {name}",
selectedRuns: "{count} selecionados",
deleteSelected: "Excluir selecionados",
showFiles: "Mostrar arquivos de backup",
scheduledTrigger: "Execução agendada",
manualTrigger: "Execução manual",
@@ -8917,7 +8927,9 @@ export default withEnglishFallback({
restore: "Restaurar",
deleteBackup: "Excluir backup",
deleteBackupConfirm: "Tem certeza de que deseja excluir este backup e seus {count} arquivos SQL? Esta ação é irreversível.",
deleteBackupsConfirm: "Tem certeza de que deseja excluir {count} backups e seus {files} arquivos SQL? Esta ação é irreversível.",
backupDeleted: "Backup excluído",
backupsDeleted: "{count} backups excluídos",
runSuccess: "Backup concluído, {count} arquivos gerados",
runCancelled: "Backup cancelado",
runFailed: "Falha no backup: {error}",
+11
View File
@@ -7682,6 +7682,10 @@ export default withEnglishFallback({
missingConnection: "Bağlantı eksik",
destination: "Hedef dizin",
selectDestination: "Yedekleme dizinini seçin",
runDirectoryPattern: "Çalıştırma dizini şablonu",
runDirectoryPatternHint: "Hedef dizin altındaki göreli yol. {'{'}schedule{'}'}, {'{'}date{'}'}, {'{'}timestamp{'}'} ve {'{'}runId{'}'} kullanın. Varsayılan şablon daha iyi yalıtım için {'{'}runId{'}'} içerir. Örnek: {'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "Dizin önizlemesi",
runDirectoryPatternInvalid: ". veya .. bölümleri içermeyen göreli bir yol kullanın.",
compression: "Sıkıştırma",
compressionNone: "Sıkıştırma yok (.sql)",
compressionGzip: "Gzip (.sql.gz)",
@@ -7689,6 +7693,7 @@ export default withEnglishFallback({
noMatchingConnections: "Eşleşen bağlantı yok",
searchDatabases: "Veritabanlarında ara…",
noMatchingDatabases: "Eşleşen veritabanı yok",
databaseListLoadFailed: "{name} için veritabanları yüklenemedi. Bu bağlantıyı denetleyin veya başka bir bağlantı seçin.",
databases: "Veritabanları",
allDatabases: "Tüm veritabanları",
databaseCount: "{count} veritabanı",
@@ -7741,6 +7746,10 @@ export default withEnglishFallback({
backupStatus: "Yedekleme durumu",
allStatuses: "Tüm durumlar",
noFilteredHistory: "Eşleşen yedekleme kaydı yok",
selectAllFiltered: "Filtrelenmiş sonuçların tümünü seç",
selectRun: "{name} seç",
selectedRuns: "{count} seçildi",
deleteSelected: "Seçilenleri sil",
showFiles: "Yedekleme dosyalarını göster",
scheduledTrigger: "Zamanlanmış",
manualTrigger: "Elle",
@@ -7754,7 +7763,9 @@ export default withEnglishFallback({
restore: "Geri yükle",
deleteBackup: "Yedeği sil",
deleteBackupConfirm: "Bu yedek ve {count} SQL dosyası silinsin mi? Bu işlem geri alınamaz.",
deleteBackupsConfirm: "{count} yedek ve bunların {files} SQL dosyası silinsin mi? Bu işlem geri alınamaz.",
backupDeleted: "Yedek silindi",
backupsDeleted: "{count} yedek silindi",
runSuccess: "Yedekleme {count} dosyayla tamamlandı",
runCancelled: "Yedekleme iptal edildi",
runFailed: "Yedekleme başarısız: {error}",
+11
View File
@@ -7805,6 +7805,10 @@ export default withEnglishFallback({
missingConnection: "连接已不存在",
destination: "备份目录",
selectDestination: "选择备份目录",
runDirectoryPattern: "运行目录模板",
runDirectoryPatternHint: "相对于备份目录的路径。可使用 {'{'}schedule{'}'}、{'{'}date{'}'}、{'{'}timestamp{'}'} 和 {'{'}runId{'}'}。默认模板保留 {'{'}runId{'}'} 以获得更好的隔离性。例如:{'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "目录预览",
runDirectoryPatternInvalid: "请输入不含 . 或 .. 路径段的相对路径。",
compression: "压缩",
compressionNone: "不压缩(.sql)",
compressionGzip: "Gzip 压缩(.sql.gz)",
@@ -7812,6 +7816,7 @@ export default withEnglishFallback({
noMatchingConnections: "未找到匹配的连接",
searchDatabases: "搜索数据库…",
noMatchingDatabases: "未找到匹配的数据库",
databaseListLoadFailed: "无法读取“{name}”的数据库。请检查该连接,或选择其他连接。",
databases: "数据库",
allDatabases: "全部数据库",
databaseCount: "{count} 个数据库",
@@ -7864,6 +7869,10 @@ export default withEnglishFallback({
backupStatus: "备份状态",
allStatuses: "全部状态",
noFilteredHistory: "没有匹配的备份记录",
selectAllFiltered: "全选当前筛选结果",
selectRun: "选择 {name}",
selectedRuns: "已选择 {count} 项",
deleteSelected: "批量删除",
showFiles: "显示备份文件",
scheduledTrigger: "定时执行",
manualTrigger: "手动执行",
@@ -7877,7 +7886,9 @@ export default withEnglishFallback({
restore: "恢复",
deleteBackup: "删除备份",
deleteBackupConfirm: "确定删除此备份及其 {count} 个 SQL 文件吗?此操作不可撤销。",
deleteBackupsConfirm: "确定删除 {count} 个备份及其 {files} 个 SQL 文件吗?此操作不可撤销。",
backupDeleted: "备份已删除",
backupsDeleted: "已删除 {count} 个备份",
runSuccess: "备份完成,共生成 {count} 个文件",
runCancelled: "备份已取消",
runFailed: "备份失败:{error}",
+11
View File
@@ -8834,6 +8834,10 @@ export default withEnglishFallback({
missingConnection: "連線已不存在",
destination: "備份目錄",
selectDestination: "選擇備份目錄",
runDirectoryPattern: "執行目錄範本",
runDirectoryPatternHint: "相對於備份目錄的路徑。可使用 {'{'}schedule{'}'}、{'{'}date{'}'}、{'{'}timestamp{'}'} 和 {'{'}runId{'}'}。預設範本保留 {'{'}runId{'}'} 以獲得更好的隔離性。例如:{'{'}schedule{'}'}/{'{'}date{'}'}/{'{'}timestamp{'}'}-{'{'}runId{'}'}",
runDirectoryPreview: "目錄預覽",
runDirectoryPatternInvalid: "請輸入不含 . 或 .. 路徑段的相對路徑。",
compression: "壓縮",
compressionNone: "不壓縮(.sql)",
compressionGzip: "Gzip 壓縮(.sql.gz)",
@@ -8841,6 +8845,7 @@ export default withEnglishFallback({
noMatchingConnections: "找不到相符的連線",
searchDatabases: "搜尋資料庫…",
noMatchingDatabases: "找不到相符的資料庫",
databaseListLoadFailed: "無法讀取「{name}」的資料庫。請檢查該連線,或選擇其他連線。",
databases: "資料庫",
allDatabases: "全部資料庫",
databaseCount: "{count} 個資料庫",
@@ -8893,6 +8898,10 @@ export default withEnglishFallback({
backupStatus: "備份狀態",
allStatuses: "所有狀態",
noFilteredHistory: "沒有相符的備份記錄",
selectAllFiltered: "全選目前篩選結果",
selectRun: "選擇 {name}",
selectedRuns: "已選擇 {count} 項",
deleteSelected: "批次刪除",
showFiles: "顯示備份檔案",
scheduledTrigger: "定時執行",
manualTrigger: "手動執行",
@@ -8905,7 +8914,9 @@ export default withEnglishFallback({
restore: "回復",
deleteBackup: "刪除備份",
deleteBackupConfirm: "確定刪除此備份及其 {count} 個 SQL 檔案嗎?此操作不可撤銷。",
deleteBackupsConfirm: "確定刪除 {count} 個備份及其 {files} 個 SQL 檔案嗎?此操作不可撤銷。",
backupDeleted: "備份已刪除",
backupsDeleted: "已刪除 {count} 個備份",
runSuccess: "備份完成,共產生 {count} 個檔案",
runCancelled: "備份已取消",
runFailed: "備份失敗:{error}",