# DB Scripts And Migrations

Gli script DB Sophia hanno lifecycle dedicato. Trattali come operazioni di deploy con tracking, non come semplici file SQL.

## Registry e tracking

Registry file-backed tipici:

- `protected/data/scripts_aggiornamento_framework.php`
- `protected/data/scripts_aggiornamento_application.php`
- eventuale registry cliente

Modelli e tracking:

- modelli `_scripts_aggiornamento_*` basati su `ArrayModel`;
- tabelle `frm_sys_scriptsdb_frm`, `frm_sys_scriptsdb_app`, `frm_sys_scriptsdb_cli`;
- esecuzione centralizzata in `SiteController`.

## Regole operative

1. Dichiara modo `Frm`, `App` o `Cli`.
2. Associa ticket o motivazione tracciabile quando disponibile.
3. Descrivi effetto SQL, ambiente target e rischio dati.
4. Verifica che lo script sia registrato nel file corretto.
5. Verifica tracking DB dopo esecuzione o piano di esecuzione.
6. Coinvolgi `mcp-database-expert` per schema, query e impatti dati.

## Rischi noti

- Esecuzione non transazionale applicativa.
- Tracking successivo alla query.
- Esecuzione massiva che non ricalcola script gia tracciati.
- Differenze ambiente tra dev/test/preprod/prod.

## Chiusura minima

- SQL rivisto.
- Registry corretto.
- Tracking previsto.
- Piano rollback o mitigazione dichiarato se impatto dati e non banale.
