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 ritornalist[dict]reference_choice_list(sql, value_key, label_key, params=None, prepend=None): utility perSelectFieldin 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.