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:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user