feat: Add --clean-cluster flag for disaster recovery

Implements cluster cleanup option for CLI (matches TUI functionality).

Features:
- --clean-cluster flag drops all user databases before restore
- Preserves system databases (postgres, template0, template1)
- Shows databases to be dropped in dry-run mode
- Requires --confirm for safety
- Warns user with 🔥 icon when enabled
- Can combine with --workdir for full disaster recovery

Use cases:
- Disaster recovery scenarios (clean slate restore)
- Prevent database conflicts during cluster restore
- Ensure consistent cluster state

Examples:
  # Disaster recovery
  dbbackup restore cluster backup.tar.gz --clean-cluster --confirm

  # Combined with workdir
  dbbackup restore cluster backup.tar.gz \
    --clean-cluster \
    --workdir /mnt/storage/restore_tmp \
    --confirm

Chef's kiss backup tool! 👨‍🍳💋
This commit is contained in:
2025-11-28 13:55:02 +00:00
parent cfa51c4b37
commit 53b7c95abc
2 changed files with 91 additions and 6 deletions

View File

@@ -787,9 +787,22 @@ sudo -u postgres ./dbbackup restore cluster cluster_backup.tar.gz \
sudo -u postgres ./dbbackup restore cluster cluster_backup.tar.gz \
--workdir /mnt/storage/restore_tmp \
--confirm
# Disaster recovery: Drop all existing databases first (clean slate)
sudo -u postgres ./dbbackup restore cluster cluster_backup.tar.gz \
--clean-cluster \
--confirm
# Combined: Clean cluster + alternative storage
sudo -u postgres ./dbbackup restore cluster cluster_backup.tar.gz \
--clean-cluster \
--workdir /mnt/storage/restore_tmp \
--confirm
```
**Note:** The `--workdir` flag is only needed when your system disk is small but you have larger mounted storage (NFS, SAN, etc.). For standard deployments, it's not required.
**Note:**
- The `--workdir` flag is only needed when your system disk is small but you have larger mounted storage (NFS, SAN, etc.)
- The `--clean-cluster` flag drops all user databases before restore (keeps postgres, template0, template1). Use for disaster recovery scenarios.
**Safety Features:**