- Provides database-agnostic abstraction layer supporting SQLite and PostgreSQL
- Manages connection pooling with configurable parameters and timeouts
- Implements comprehensive migration system with rollback capabilities
- Handles data type conversions between databases (UUID, JSON storage)
- Provides migration validation, backup creation, and history tracking
- Database Abstraction: Unified interface across SQLite and PostgreSQL backends
- Connection Management: Pool configuration with environment-based parameters
- Migration Orchestration: Forward and backward migration execution with safety checks
- Data Type Handling: Database-specific UUID and JSON storage abstractions
- Migration Safety: Rollback capabilities, validation, and backup creation
- Development Support: SQLite for development, PostgreSQL for production flexibility
Database struct: High-level database operations wrapper
MigrationManager: Advanced migration handling with rollback support
MigrationInfo: Migration metadata and status tracking
- Type aliases (
DbPool, DbRow, DbTransaction) for database portability
- Data conversion functions (
uuid_to_db, json_to_db) for cross-database compatibility
- Connection Pool Creation: Environment-based pool configuration and initialization
- Database-Specific Adaptations: UUID and JSON handling based on backend type
- Migration Execution: Forward migration application with dependency tracking
- Rollback Processing: Reverse migration execution with transaction safety
- Data Type Conversion: Automatic conversion between application and database types
- Backup Operations: Database backup creation before major migrations
- Configuration System: Database URL and pooling parameters from environment
- Migration Files: File system integration for migration script loading
- Application State: Database pool injection into shared application state
- All Handlers: Database access through connection pool abstraction
- Monitoring Systems: Connection health checks and pool metrics
- Admin Interface: Migration status reporting and management operations
- Database Abstraction Layer: Feature flags and type aliases for multi-backend support
- Migration as Code: Version-controlled database schema evolution
- Rollback Safety: Transactional rollback with integrity checking
- Connection Pooling: Resource management with configurable lifecycle policies
- Type Safety: Compile-time database feature selection and type checking
- Backup Strategy: Automated backup creation for migration safety