feat(database): Add comprehensive database initialization module

- Add src/server/database/init.py with complete initialization framework
  * Schema creation with idempotent table generation
  * Schema validation with detailed reporting
  * Schema versioning (v1.0.0) and migration support
  * Health checks with connectivity monitoring
  * Backup functionality for SQLite databases
  * Initial data seeding framework
  * Utility functions for database info and migration guides

- Add comprehensive test suite (tests/unit/test_database_init.py)
  * 28 tests covering all functionality
  * 100% test pass rate
  * Integration tests and error handling

- Update src/server/database/__init__.py
  * Export new initialization functions
  * Add schema version and expected tables constants

- Fix syntax error in src/server/models/anime.py
  * Remove duplicate import statement

- Update instructions.md
  * Mark database initialization task as complete

Features:
- Automatic schema creation and validation
- Database health monitoring
- Backup creation with timestamps
- Production-ready with Alembic migration guidance
- Async/await support throughout
- Comprehensive error handling and logging

Test Results: 69/69 database tests passing (100%)
This commit is contained in:
2025-10-19 17:21:31 +02:00
parent f1c2ee59bd
commit 30de86e77a
5 changed files with 1185 additions and 70 deletions

View File

@@ -23,6 +23,19 @@ Usage:
from src.server.database.base import Base
from src.server.database.connection import close_db, get_db_session, init_db
from src.server.database.init import (
CURRENT_SCHEMA_VERSION,
EXPECTED_TABLES,
check_database_health,
create_database_backup,
create_database_schema,
get_database_info,
get_migration_guide,
get_schema_version,
initialize_database,
seed_initial_data,
validate_database_schema,
)
from src.server.database.models import (
AnimeSeries,
DownloadQueueItem,
@@ -37,14 +50,29 @@ from src.server.database.service import (
)
__all__ = [
# Base and connection
"Base",
"get_db_session",
"init_db",
"close_db",
# Initialization functions
"initialize_database",
"create_database_schema",
"validate_database_schema",
"get_schema_version",
"seed_initial_data",
"check_database_health",
"create_database_backup",
"get_database_info",
"get_migration_guide",
"CURRENT_SCHEMA_VERSION",
"EXPECTED_TABLES",
# Models
"AnimeSeries",
"Episode",
"DownloadQueueItem",
"UserSession",
# Services
"AnimeSeriesService",
"EpisodeService",
"DownloadQueueService",