OnyxlMunkey's picture
c618549
#!/usr/bin/env python3
"""Initialize database with tables."""
import asyncio
import sys
from pathlib import Path
# Fix Windows console encoding
if sys.platform == "win32":
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent.parent))
from app.db.database import init_db, engine
from app.db.models import Base
from app.core.logging import configure_logging
import structlog
logger = structlog.get_logger(__name__)
async def main():
"""Initialize database."""
configure_logging()
logger.info("initializing_database")
try:
await init_db()
logger.info("database_initialized_successfully")
print("[OK] Database initialized successfully!")
except Exception as e:
logger.error("database_initialization_failed", exc_info=e)
print(f"[ERROR] Database initialization failed: {e}")
sys.exit(1)
if __name__ == "__main__":
asyncio.run(main())