from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, declarative_base from app.core.settings import settings if settings.cloud_sql_connection_name: # Cloud Run - Formato para PostgreSQL # Note que usamos 'host' dentro da query string para apontar o socket DATABASE_URL = ( f"postgresql+psycopg2://{settings.db_user}:{settings.db_password}@/{settings.db_name}" f"?host=/cloudsql/{settings.cloud_sql_connection_name}" ) else: # Ambiente local (via Cloud SQL Proxy) DATABASE_URL = ( f"postgresql+psycopg2://{settings.db_user}:{settings.db_password}@" f"127.0.0.1:5432/{settings.db_name}" ) engine = create_engine( DATABASE_URL, pool_pre_ping=True, connect_args={"connect_timeout": 5} # Evita travar o startup por muito tempo ) SessionLocal = sessionmaker( autocommit=False, autoflush=False, bind=engine ) Base = declarative_base()