import asyncio import logging from sqlalchemy.ext.asyncio import AsyncSession from app.database.session import AsyncSessionLocal from app.core.config import settings from app.crud.user import get_user_by_username, create_user logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def init_db() -> None: async with AsyncSessionLocal() as session: user = await get_user_by_username(session, username=settings.ADMIN_USERNAME) if not user: logger.info(f"Creating default admin user '{settings.ADMIN_USERNAME}'") await create_user( session, username=settings.ADMIN_USERNAME, password=settings.ADMIN_PASSWORD ) logger.info("Admin user created successfully.") else: logger.info(f"Admin user '{settings.ADMIN_USERNAME}' already exists.") async def main() -> None: logger.info("Creating initial data...") await init_db() logger.info("Initial data created.") if __name__ == "__main__": asyncio.run(main())