DB Storage Manager - A professional desktop application for visualizing and managing database storage, growth, and backups across multiple database engines. Built with Python and PyQt6 for cross-platform excellence.
- PostgreSQL - Full driver with pg_stat analysis and pg_dump/pg_restore
- MySQL/MariaDB - Complete INFORMATION_SCHEMA support with mysqldump
- SQLite - File-based operations with PRAGMA analysis
- MongoDB - Collection and document analysis with mongodump
- Redis - Key-value analysis and memory usage tracking
- Comprehensive Metrics - Per-database and per-table size analysis
- Visual Charts - Interactive charts and visualizations
- Growth Trends - Historical storage growth tracking
- Index Analysis - Index size and bloat estimation
- Export Capabilities - CSV data export
- Encrypted Storage - All credentials encrypted using cryptography (Fernet)
- SSH Tunneling - Secure remote database access (planned)
- Safe Mode - Blocks dangerous operations by default
- Connection Testing - One-click connection validation
- Multi-Database Support - Execute queries across different database types
- Safe Execution - User-controlled write operations
- Query Results - Tabular result display
- Explain Plans - Query optimization analysis
- Local Backups - File-based backup with compression
- S3 Integration - Cloud backup with S3-compatible storage
- Google Drive Integration - Backup to Google Drive
- Scheduled Backups - Automated backup scheduling
- Encrypted Storage - Secure backup encryption
- One-Click Restore - Easy database restoration
- Native Look - PyQt6 provides native look and feel
- Professional Design - Clean, modern interface
- Cross-Platform - Windows, macOS, and Linux support
- Theme Support - Light, dark, and system themes
- Python 3.10 or higher
- pip or pipenv
-
Clone Repository
git clone https://github.com/voxhash/db-storage-manager.git cd db-storage-manager -
Install Dependencies
pip install -r requirements.txt
-
Run Application
python -m db_storage_manager.main
-
Install Package
pip install -e . -
Run Application
db-storage-manager
-
Create Virtual Environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Run Application
python -m db_storage_manager.main
- Open Application - Launch DB Storage Manager
- Navigate to Connections - Click "Connections" tab
- Add Connection - Click "Add Connection" button
- Configure Settings - Enter database details and credentials
- Test Connection - Click "Test Connection" to verify connectivity
- Save Connection - Encrypted credentials are stored securely
- Select Connection - Choose from your saved connections in Dashboard
- Run Analysis - Click "Analyze" to scan database storage
- View Results - Explore detailed storage metrics and tables
- Export Data - Save data for reporting (planned)
- Create Backup - Select connection and backup settings
- Schedule Backups - Set up automated backup schedules
- Monitor Backups - View backup history and status
- Restore Data - One-click restore with confirmation
- Open Console - Navigate to Query Console tab
- Select Connection - Choose database connection
- Write Queries - Enter SQL/NoSQL queries
- Execute Safely - Safe mode blocks dangerous operations
- View Results - Analyze query results
Access via Settings tab:
- Theme - Light, dark, or system theme
- Language - Internationalization support
- Safe Mode - Enable/disable write operations
- Notifications - System notification preferences
- Telemetry - Anonymous usage statistics (disabled by default)
- Encrypted Storage - All credentials encrypted with cryptography (Fernet)
- Local-Only - No external data transmission
- Safe Mode - Prevents accidental data modification
- SSH Tunneling - Secure remote connections (planned)
- PostgreSQL 12+ - Full feature support
- MySQL 8+ - Complete compatibility
- MariaDB 10+ - MySQL-compatible features
- SQLite 3+ - File-based database support
- MongoDB 4+ - Document database analysis
- Redis 6+ - Key-value store management
db_storage_manager/
βββ db/ # Database connection modules
β βββ base.py # Base connection interface
β βββ factory.py # Connection factory
β βββ postgres.py # PostgreSQL connection
β βββ mysql.py # MySQL connection
β βββ sqlite.py # SQLite connection
β βββ mongo.py # MongoDB connection
β βββ redis.py # Redis connection
βββ backups/ # Backup system
β βββ base.py # Base backup adapter
β βββ manager.py # Backup manager
β βββ local.py # Local backup adapter
β βββ s3.py # S3 backup adapter
β βββ googledrive.py # Google Drive adapter
β βββ scheduler.py # Scheduled backup manager
βββ security/ # Security modules
β βββ store.py # Encrypted storage
βββ gui/ # PyQt6 GUI components
β βββ main_window.py # Main window
β βββ dashboard.py # Dashboard widget
β βββ connections.py # Connections widget
β βββ query.py # Query console widget
β βββ backups.py # Backups widget
β βββ settings.py # Settings widget
βββ config.py # Configuration
βββ main.py # Application entry point
# Development
python -m db_storage_manager.main # Run application
python -m pytest # Run tests
# Code Quality
black . # Format code
flake8 . # Lint code
mypy . # Type checking-
Clone Repository
git clone https://github.com/voxhash/db-storage-manager.git cd db-storage-manager -
Install Dependencies
pip install -r requirements.txt
-
Run Application
python -m db_storage_manager.main
Application won't start:
- Ensure Python 3.10+ is installed
- Run
pip install -r requirements.txtto install dependencies - Check system requirements
Database connection fails:
- Verify database credentials
- Check network connectivity
- Ensure database server is running
Backup operations fail:
- Check disk space availability
- Verify backup directory permissions
- Ensure database is accessible
PyQt6 installation issues:
- On Linux:
sudo apt-get install python3-pyqt6orsudo yum install python3-qt6 - On macOS:
brew install pyqt6 - On Windows: pip should work directly
Performance issues:
- Close unnecessary applications
- Check system memory usage
- Restart the application
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Documentation
See CHANGELOG.md for detailed version history and upcoming features.
We welcome contributions! Please see our Contributing Guide for details.
- Getting Started - Setup and first steps
- Architecture - Technical architecture details
- Security - Security features and best practices
- Roadmap - Development roadmap and future plans
This project is licensed under the MIT License - see the LICENSE file for details.
- PyQt6 - Cross-platform GUI framework
- Python - Programming language
- Database Drivers - psycopg2, pymysql, aiosqlite, pymongo, redis
- Community - Feedback and contributions
Made with β€οΈ by VoxHash
DB Storage Manager - Professional database management made simple! ποΈβ¨