Ir para o conteúdo

Camada de Banco de Dados

Este módulo gerencia o ciclo de vida das engines SQLAlchemy e a criação de sessões para comunicação com o PostgreSQL e Oracle.

onboarding_hub.db.engine

Engine SQLAlchemy (usando o driver psycopg 3).

Functions:

get_engine()

Cria o engine Postgres a partir da DATABASE_URL configurada.

Força o driver psycopg 3 (postgresql+psycopg://) mesmo que a URL venha no formato curto postgresql://.

Source code in src\onboarding_hub\db\engine.py
def get_engine() -> Engine:
    """Cria o engine Postgres a partir da DATABASE_URL configurada.

    Força o driver psycopg 3 (`postgresql+psycopg://`) mesmo que a URL venha
    no formato curto `postgresql://`.
    """
    url = settings.database_url
    if url.startswith("postgresql://"):
        url = url.replace("postgresql://", "postgresql+psycopg://", 1)
    return create_engine(url, future=True)

get_oracle_engine()

Cria o engine Oracle a partir da ORACLE_URL configurada.

Utiliza o driver python-oracledb (modo Thin por padrão, sem necessidade de Instant Client).

Source code in src\onboarding_hub\db\engine.py
def get_oracle_engine() -> Engine:
    """Cria o engine Oracle a partir da ORACLE_URL configurada.

    Utiliza o driver python-oracledb (modo Thin por padrão, sem necessidade de Instant Client).
    """
    url = settings.oracle_url
    # Opcional: oracledb.init_oracle_client() se precisasse de Thick mode.
    # Com oracle+oracledb://, o SQLAlchemy já usa o novo driver oracledb.
    return create_engine(url, future=True)