feat: enhance backup functionality and logging
- Updated `createBackup` method to accept a `force` parameter, allowing backups to be created even if no changes are detected. - Added user alerts in `AdvancedSettingsPageClient` and `BackupSettingsPageClient` for backup status feedback. - Implemented `getBackupLogs` method in `BackupService` to retrieve backup logs, with a new API route for accessing logs. - Enhanced UI in `BackupSettingsPageClient` to display backup logs and provide a refresh option. - Updated `BackupManagerCLI` to support forced backups via command line.
This commit is contained in:
@@ -21,7 +21,7 @@ class BackupManagerCLI {
|
||||
🔧 TowerControl Backup Manager
|
||||
|
||||
COMMANDES:
|
||||
create Créer une nouvelle sauvegarde
|
||||
create [--force] Créer une nouvelle sauvegarde (--force pour ignorer la détection de changements)
|
||||
list Lister toutes les sauvegardes
|
||||
delete <filename> Supprimer une sauvegarde
|
||||
restore <filename> Restaurer une sauvegarde
|
||||
@@ -35,6 +35,7 @@ COMMANDES:
|
||||
|
||||
EXEMPLES:
|
||||
tsx backup-manager.ts create
|
||||
tsx backup-manager.ts create --force
|
||||
tsx backup-manager.ts list
|
||||
tsx backup-manager.ts delete towercontrol_2025-01-15T10-30-00-000Z.db
|
||||
tsx backup-manager.ts restore towercontrol_2025-01-15T10-30-00-000Z.db.gz
|
||||
@@ -105,7 +106,7 @@ OPTIONS:
|
||||
try {
|
||||
switch (options.command) {
|
||||
case 'create':
|
||||
await this.createBackup();
|
||||
await this.createBackup(options.force || false);
|
||||
break;
|
||||
|
||||
case 'list':
|
||||
@@ -167,13 +168,22 @@ OPTIONS:
|
||||
}
|
||||
}
|
||||
|
||||
private async createBackup(): Promise<void> {
|
||||
private async createBackup(force: boolean = false): Promise<void> {
|
||||
console.log('🔄 Création d\'une sauvegarde...');
|
||||
const result = await backupService.createBackup('manual');
|
||||
const result = await backupService.createBackup('manual', force);
|
||||
|
||||
if (result === null) {
|
||||
console.log('⏭️ Sauvegarde sautée: Aucun changement détecté depuis la dernière sauvegarde');
|
||||
console.log(' 💡 Utilisez --force pour créer une sauvegarde malgré tout');
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.status === 'success') {
|
||||
console.log(`✅ Sauvegarde créée: ${result.filename}`);
|
||||
console.log(` Taille: ${this.formatFileSize(result.size)}`);
|
||||
if (result.databaseHash) {
|
||||
console.log(` Hash: ${result.databaseHash.substring(0, 12)}...`);
|
||||
}
|
||||
} else {
|
||||
console.error(`❌ Échec de la sauvegarde: ${result.error}`);
|
||||
process.exit(1);
|
||||
|
||||
Reference in New Issue
Block a user