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 - PostgreSQL via Unix socket DATABASE_URL = ( f"postgresql+psycopg://{settings.db_user}:{settings.db_password}@/{settings.db_name}" f"?host=/cloudsql/{settings.cloud_sql_connection_name}" ) else: # Ambiente local/VPN - PostgreSQL em host/porta configurados DATABASE_URL = ( f"postgresql+psycopg://{settings.db_user}:{settings.db_password}@" f"{settings.db_host}:{settings.db_port}/{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()