Vai al contenuto

Reference Data DB (read-only)

Uso consigliato per tabelle comuni condivise tra tenant (es. province, comuni, codici ISTAT).

Configurazione .env

REFERENCE_DB_URI=mysql+pymysql://user:pass@127.0.0.1:3306/safeops_reference
REFERENCE_DB_FALLBACK_TO_MAIN=true
REFERENCE_DB_ENFORCE_SELECT_ONLY=true
REFERENCE_DB_POOL_SIZE=5
REFERENCE_DB_MAX_OVERFLOW=10
REFERENCE_DB_POOL_RECYCLE=1800

Service disponibile

File: app/modules/reference_data/services.py

  • reference_select_rows(sql, params=None): esegue solo SELECT e ritorna list[dict]
  • reference_choice_list(sql, value_key, label_key, params=None, prepend=None): utility per SelectField in FAB/WTForms

Esempio rapido (SelectField)

from wtforms import SelectField
from app.modules.reference_data import reference_choice_list

provincia_field = SelectField(
    "Provincia",
    choices=lambda: reference_choice_list(
        "SELECT sigla AS value, nome AS label FROM province ORDER BY nome",
        value_key="value",
        label_key="label",
    ),
)

Note operative

  • Il DB reference e' separato dal DB tenant.
  • In app, il CRUD principale resta sul DB tenant.
  • Le lookup da reference DB sono solo lettura.