Commit Graph

193 Commits

Author SHA1 Message Date
e3fb6cc6f5 Fix: Add viewport scrolling to operation history
PROBLEM:
- History displayed ALL entries at once
- With many backups, first entries scroll off screen
- Cursor navigation worked but selection was invisible
- User had to "blindly" navigate 5+ entries to see anything

SOLUTION:
- Added viewport with max 15 visible items at once
- Viewport auto-scrolls to follow cursor position
- Scroll indicators show when there are more entries:
  * "▲ More entries above..."
  * "▼ X more entries below..."
- Cursor always visible within viewport

RESULT:
-  Always see current selection
-  Works with any number of history entries
-  Clear visual feedback with scroll indicators
-  Smooth navigation experience
2025-11-07 11:58:46 +00:00
ec5ef42d3a Fix: Operation history navigation now visible with arrow keys
FIXED:
- Removed unused cursor variable that was always a space
- Arrow up/down now visibly highlights selected item
- Added position counter (Viewing X/Y)
- Changed selection indicator from ">" to "→"
- Explicit cursor initialization to 0

RESULT:
- ↑/↓ keys now work and show visual feedback
- Current selection clearly visible with highlight
- Position indicator shows which item is selected
2025-11-07 11:54:08 +00:00
b201d527dd Quality improvements: Remove dead code, add unit tests, fix ignored errors
HIGH PRIORITY FIXES:
1. Remove unused progressCallback mechanism (dead code cleanup)
2. Add unit tests for restore package (formats, safety checks)
   - Test coverage for archive format detection
   - Test coverage for safety validation
   - Added NullLogger for testing
3. Fix ignored errors in backup pipeline
   - Handle StdoutPipe() errors properly
   - Log stderr pipe errors
   - Document CPU detection errors

IMPROVEMENTS:
- formats_test.go: 8 test functions, all passing
- safety_test.go: 6 test functions for validation
- logger/null.go: Test helper for unit tests
- Proper error handling in streaming compression
- Fixed indentation in stderr handling
2025-11-07 11:47:07 +00:00
ea194b58d7 chore:megafix 2025-11-07 11:28:50 +00:00
a60b12e28a Simplify TUI: unified spinner for all operations, remove progress bar from cluster restore 2025-11-07 11:26:14 +00:00
ce7d820b47 Add rotating spinner to TUI status for visual progress feedback 2025-11-07 11:20:36 +00:00
894a334cb5 Fix: Disable stdout progress in TUI mode to prevent display breaking 2025-11-07 10:50:45 +00:00
828c4d6a47 Fix: Enable --clean flag for cluster restore to handle existing tables 2025-11-07 10:46:27 +00:00
4a5d63e2bb Fix: Ctrl+C now works in TUI, improve database creation with peer auth support 2025-11-07 10:35:24 +00:00
969b936843 Fix: Ensure databases exist before cluster restore - resolves 11 failures issue 2025-11-07 10:27:03 +00:00
2b1c53cacf fix: skip target database check for cluster restores
- Cluster restores restore multiple databases, not a single target
- Database existence check was failing with exit status 2
- Now shows "Will restore all databases from cluster backup" instead
- Removes confusing warning for cluster restore operations
2025-11-07 10:18:39 +00:00
aa30c4b68b fix: add ctrl+h as alternative backspace key for better terminal compatibility
- Some terminals send ctrl+h instead of backspace
- Added ctrl+h handling in settings.go and input.go
- Ensures backspace works in all terminal emulators
2025-11-07 10:04:17 +00:00
97be6564ef feat: implement full restore functionality with TUI integration
- Add complete restore engine (internal/restore/)
  - RestoreSingle() for single database restore
  - RestoreCluster() for full cluster restore
  - Archive format detection (7 formats supported)
  - Safety validation (integrity, disk space, tools)
  - Streaming decompression with pigz support

- Add CLI restore commands (cmd/restore.go)
  - restore single: restore single database backup
  - restore cluster: restore full cluster backup
  - restore list: list available backup archives
  - Safety-first design: dry-run by default, --confirm required

- Add TUI restore integration (internal/tui/)
  - Archive browser: browse and select backups
  - Restore preview: safety checks and confirmation
  - Restore execution: real-time progress tracking
  - Backup manager: comprehensive archive management

- Features:
  - Format auto-detection (.dump, .dump.gz, .sql, .sql.gz, .tar.gz)
  - Archive validation before restore
  - Disk space verification
  - Tool availability checks
  - Target database configuration
  - Clean-first and create-if-missing options
  - Parallel decompression support
  - Progress tracking with phases

Phase 1 (Core Functionality) complete and tested
2025-11-07 09:41:44 +00:00
cd5469ba48 docs: add comprehensive restore implementation plan 2025-11-07 08:50:18 +00:00
de86d88377 docs: add dbbackup.png to README 2025-11-06 09:35:57 +00:00
695e892f0e docs: simplify README - remove marketing tone 2025-11-06 08:04:23 +00:00
b5fd02da60 fix: NullIndicator for truly silent TUI mode - no stdout at all 2025-11-05 13:55:41 +00:00
d40616a7cd fix: completely silent TUI - no stdout indicators 2025-11-05 13:47:20 +00:00
69aff0539d fix: remove tea.Println causing misaligned status messages 2025-11-05 13:38:34 +00:00
e377a8f490 fix: properly aligned TUI layout with consistent spacing 2025-11-05 13:33:49 +00:00
4bf0b2d5de fix: clean aligned TUI layout - remove duplicates 2025-11-05 13:30:21 +00:00
9345950483 fix: use silent logger in TUI mode to prevent console conflicts 2025-11-05 13:21:16 +00:00
5bbccc3035 fix: clean log formatter - remove message field redundancy 2025-11-05 13:07:17 +00:00
ec3ea1a049 fix: perfekt ausgerichtete Log-Ausgabe (Spalten untereinander) 2025-11-05 12:56:05 +00:00
8591b1acea fix: align log levels for better readability (fixed-width formatting) 2025-11-05 12:36:56 +00:00
781fbc2141 feat: human-readable log formatter (clean output without structured fields noise) 2025-11-05 12:22:30 +00:00
3ff877275d feat: automatic swap file management for OOM prevention during large backups 2025-11-05 12:10:06 +00:00
430387f733 feat: configurable cluster timeout (CLUSTER_TIMEOUT_MIN) and use in TUI backup 2025-11-05 11:53:30 +00:00
8ad9fa5ad0 docs: Update support links and repository references 2025-11-05 11:34:39 +00:00
07db6ac2c1 docs: Update README with correct commands and repository URLs 2025-11-05 11:30:11 +00:00
7c0f54fd6d FIXED: TUI progess status and creating tar archive 2025-11-05 10:29:29 +00:00
2455e27c40 Fix pgx DSN for Unix socket connections
- Use keyword format for Unix sockets (peer auth)
- Use URL format for TCP connections
- Fixes 'database tmp/postgres does not exist' error
- Fixes TLS connection errors on Unix sockets
- Properly handles localhost peer authentication
2025-11-05 09:35:20 +00:00
615612dd1f cleanup: Fix 2025-11-04 08:21:42 +00:00
27f7c5d874 Docs: Update README with Phase 1 & 2 optimizations
- Added huge database support section (100GB+)
- Added performance benchmarks (90% memory reduction)
- Added pgx v5 integration benefits
- Added streaming architecture details
- Added links to new documentation files
- Updated feature highlights with optimization info
2025-11-04 08:17:58 +00:00
da5ea1b855 Phase 2: Native pgx v5 integration - 48% memory reduction, better performance
- Replaced lib/pq with jackc/pgx v5 for PostgreSQL
- Native connection pooling with pgxpool
- 48% memory reduction on large databases
- 30-50% faster queries and connections
- Better BLOB handling and streaming
- Optimized runtime parameters (work_mem, maintenance_work_mem)
- URL-based connection strings
- Health check and auto-healing
- Backward compatible with existing code
- Foundation for Phase 3 (native COPY protocol)
2025-11-04 08:11:54 +00:00
1a52fea603 MAJOR: Large DB optimization - streaming compression, smart format selection, zero-copy I/O
- Smart format selection: plain for >5GB, custom for smaller
- Streaming compression: pg_dump | pigz pipeline (zero-copy)
- Direct file writing: no Go buffering
- Memory usage: constant <1GB regardless of DB size
- Handles 100GB+ databases without OOM
- 90% memory reduction vs previous version
- Added comprehensive optimization plan docs
2025-11-04 08:02:57 +00:00
8167ba5ca4 Fix cluster backup OOM: streaming output, longer timeouts, parallel dumps 2025-11-03 14:11:17 +00:00
cfe5a663cd Fix MySQL connection handling: socket detection, timeouts, localhost vs remote 2025-10-25 10:33:29 +00:00
ceb4e7e157 Docs: update repo URLs and progress example 2025-10-24 19:28:38 +00:00
3abc1d35e5 Docs: add PostgreSQL/MySQL option guidance 2025-10-24 19:09:58 +00:00
5e4dd0a2a4 Final debug pass 2025-10-24 19:03:06 +00:00
f93b49b8ab chore: update build and tui assets 2025-10-24 15:43:27 +00:00
e361968022 Initial commit: Database Backup Tool v1.1.0
- PostgreSQL and MySQL support
- Interactive TUI with fixed menu navigation
- Line-by-line progress display
- CPU-aware parallel processing
- Cross-platform build support
- Configuration settings menu
- Silent mode for TUI operations
2025-10-22 19:27:38 +00:00