import asyncio import asyncpg import ssl import logging import sys from datetime import datetime # Configure logging to both file and console log_filename = f"db_connection_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log" logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler(log_filename), logging.StreamHandler(sys.stdout) ] ) logger = logging.getLogger(__name__) async def test_direct_connection(): logger.info("Starting database connection test") ssl_context = ssl.create_default_context() ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE try: logger.info("Creating SSL context and attempting database connection...") conn = await asyncpg.connect( user='postgres', password='Lovyelias5584.', host='juycnkjuzylnbruwaqmp.supabase.co', port=5432, database='postgres', ssl=ssl_context, timeout=60.0 ) logger.info("Successfully connected to database!") version = await conn.fetchval('SELECT version()') logger.info(f"Database version: {version}") await conn.close() logger.info("Connection closed successfully") except Exception as e: logger.error(f"Error connecting to database: {str(e)}", exc_info=True) raise finally: logger.info("Test completed") if __name__ == "__main__": try: logger.info("Starting connection test script") asyncio.run(test_direct_connection()) except Exception as e: logger.error("Fatal error in main", exc_info=True) sys.exit(1)