Saltar a contenido

PostgreSQL

Esta sección explica las configuraciones básicas para establecer una conexión a una Base de Datos PostgreSQL.

El apartado de configuraciones para las conexiones a Bases de Datos usando Callisto, se encuentran en el archivo app\server.py, donde se especifica que conexión usar por defecto, así como los datos de la misma.

Al usar SQLAlchemy como ORM, se brinda un acceso a bases de datos completo, eficiente y de alto rendimiento, adaptados al lenguaje de programación Python.

Nota

Al habilitar postgresql, Callisto buscará automaticamente la configuración para la conexión a este motor de Bases de Datos, tratando de acceder a ciertas variables de entorno predefinidas.

De igual manera, SQLAlchemy puede dar soporte completo a otros sistemas de bases de datos, más información por aquí.

Nota

como se comentaba anteriormente, por defecto no se habilita ningún motor de Bases de Datos, por lo que se deben descomentar las lineas, donde se establece la conexión.

from .contrib.sqlalchemy.pg_connect import pgmodel_close, pgmodel_connect

...

@lru_cache
def init_databases():
    """Permite inicializar conexiones
    a Bases de Datos, esta función se
    cachea para mejorar el rendimiento.
    """

    print("starting databases...")

    # dynamic database connections
    fastapp.databases = {}

    # PostgreSQL
    db = pgmodel_connect(True)

    if db is not None:
        fastapp.pg_db = db


def stop_databases():
    """Permite cerrar conexiones
    a Bases de Datos.
    """

    print("stopping databases...")

    # PostgreSQL
    conn = getattr(fastapp, "pg_db", None)
    pgmodel_close(conn)

Entorno local

Es posible hacer uso de un archivo .env, ubicado en la raiz del proyecto (opción recomendada) y fijar las variables de entorno que se necesiten.

# .env file

# opcional, un prefijo para la base de datos
DATABASE_PREFIX=testing_

# datos de conexión para PostgreSQL
PG_USERNAME=
PG_PASS=
PG_CLUSTER=
PG_DB=

Recuerda

Cuando el BackEnd se ejecute sobre un servidor personalizado ó en contenedores, buscará las variables de entorno anteriormente definidas.

Lectura recomendada