import logging import databases import sqlalchemy from app.core.config import DATABASE_URL # Configure logging logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) logger = logging.getLogger(__name__) # Database URL is constructed in app.core.config via build_database_uri # Initialize the database connection and metadata try: # Create database connection database = databases.Database(DATABASE_URL) metadata = sqlalchemy.MetaData() logger.info("Database connection initialized successfully.") except Exception as e: logger.error("Failed to initialize database connection: %s", e) raise # Helper function to initialize database async def connect_to_database(): """ Connects to the database when the application starts. """ try: await database.connect() logger.info("Successfully connected to the database.") except Exception as e: logger.error("Error connecting to the database: %s", e) raise # Helper function to disconnect database async def disconnect_from_database(): """ Disconnects from the database when the application shuts down. """ try: await database.disconnect() logger.info("Successfully disconnected from the database.") except Exception as e: logger.error("Error disconnecting from the database: %s", e) raise