Vai al contenuto

Recovery Strategy Legacy RAS Import

Ultimo aggiornamento: 2026-04-02

Stato

L'audit batch dei casi caso_001 ... caso_007 conferma che il ramo import legacy non e' affidabile nello stato attuale.

Riferimenti: - audit script - audit json - audit markdown

Sintesi audit: - casi controllati: 7 - casi allineati: 0 - casi con mismatch: 5 - casi senza documento importato trovato: 2

Root Cause Probabile

Il problema principale non sembra la perdita dei dati nel DB.

Nei casi piu critici: - legacy_dynamic_answer e' pieno - il runtime del compila non espone gran parte dei qid - quindi il documento contiene dati, ma il builder non monta l'albero corretto

La causa piu probabile e': - import di casi diversi sullo stesso legacy_model_id - sovrascrittura della struttura sezioni/template tra import successivi - mantenimento delle risposte sul documento, ma con runtime che legge una struttura non coerente col caso

Questo spiega: - domande vuote - foto su domande sbagliate - sezioni mancanti - dati generici apparentemente spostati

Classificazione Problemi

1. Problema strutturale modello/template

Casi: - caso_001 -> doc 380 - caso_004 -> doc 575 - caso_005 -> doc 575 - caso_006 -> doc 385

Segnali: - stored completo - runtime missing_expected_qids altissimo - mismatch strutturale del builder

2. Problema mapping immagini

Casi: - caso_002 -> doc 425 - anche gli altri casi mostrano problemi foto, ma caso_002 ha il runtime qid allineato

Segnali: - stored e runtime vedono i qid - le immagini risultano duplicate o conteggiate in modo incoerente

3. Caso non ancora agganciato

Casi: - caso_003 - caso_007

Segnali: - documento importato attivo non trovato

Regole Operative

Fino alla chiusura del recovery:

  1. non fare nuovi import batch live su casi legacy RAS
  2. non riusare un legacy_model_id condiviso tra casi diversi
  3. non correggere manualmente i documenti live a mano domanda per domanda
  4. ogni prova va fatta prima su staging documentale

Strategia Corretta

Fase 1. Freeze

  • bloccare nuovi import legacy sul flusso attuale
  • mantenere i documenti live attuali solo come riferimento
  • non usarli come base per concludere che l'import sia corretto

Fase 2. Isolamento modelli

Per ogni caso importato creare un modello dedicato: - legacy_model_id dedicato per caso - niente template condiviso per casi diversi

Regola: - 1 caso legacy = 1 modello dedicato

Questo elimina il rischio di sovrascrittura della struttura sezioni.

Fase 3. Reimport staging

Per ogni caso problematico: - creare un documento staging - importare il JSON legacy sul modello dedicato - verificare: - expected qid - stored qid - runtime qid - libretto.generali - vista_dall_alto - foto_facciate - immagini domanda

Solo dopo audit positivo: - swap nel master attivo

Fase 4. Foto

Separare il problema immagini dal problema modello.

Per ogni domanda: - evitare doppio conteggio tra: - images - detail.image - definire una sola forma canonica di persistenza immagini

Regola consigliata: - sorgente canonica = images - detail.image solo se il runtime lo richiede davvero, ma senza duplicare

Fase 5. Casi mancanti

Per: - caso_003 - caso_007

fare prima: - individuazione documento target - oppure creazione documento staging dedicato

Poi entrare nel reimport standard.

Ordine Consigliato

  1. caso_006 / doc 385
  2. caso conosciuto
  3. sorgente chiara
  4. perimetro operativo noto

  5. caso_001 / doc 380

  6. mismatch runtime molto evidente

  7. caso_005 / doc 575

  8. poi decidere se caso_004 va tenuto separato o trattato come variante storica

  9. caso_002 / doc 425

  10. concentrarsi sul mapping immagini

  11. caso_003 e caso_007

  12. solo dopo avere stabilizzato il flusso

Deliverable Tecnici

Prima di toccare i dati live servono:

  1. importer v2
  2. modello dedicato per caso
  3. persistenza immagini canonica
  4. libretto coerente

  5. audit v2

  6. confronto automatico:
  7. expected
  8. stored
  9. runtime

  10. swap procedure

  11. backup del master
  12. staging document
  13. copy controllato nel master

Criterio di Accettazione

Un caso si considera recuperato solo se:

  1. runtime missing_expected_qids = 0
  2. qid_mismatch_count = 0
  3. immagini domanda allineate
  4. libretto.generali allineato
  5. verifica tecnica manuale ok nel compila

Decisione

Non conviene correggere il batch attuale con patch incrementali sui documenti live.

La strada corretta e': - isolare il modello per caso - reimportare in staging - audit automatico - solo poi riallineare i master