Pulire la spina dorsale a un proprietario, nell'ordine che la mantiene al sicuro

FeatureInitializerService
Spegnimento
26 agosto 2026 alle ore 01:55 UTC
Autore
Kamo
Impegno
f0f5063

LEAD CONTACT POINTs e LEAD COMMUNICATIONS acquisiscono il responsabile del documento (assoc type, assoc object id) coppia in modo da un account, un paziente o un commercio record può proprie comunicazioni senza prendere in prestito una pista. Quattro passi, e l'ordine è tutto il punto. Backfill primo: ogni riga esistente è un piombo, quindi assoc type = 'LEAD' e assoc object id = lead uid::text. Esecuzione dopo il vincolo swap costruirebbe il nuovo indice unico su nulls, non forzando nulla. Quindi scambiare il vincolo unico sulla coppia proprietario. (org id, lead uid, canale, source id) è ciò che rende ingestione idempotent — una chiamata RingCentral è visto due volte, una volta dal webhook e una volta dalla scansione di riconciliazione — e con lead uid null per un paziente, Postgres tratta ogni uno di questi NULLs come distinto, quindi il secondo avvistamento inserisce un duplicato. Il nuovo vincolo è aggiunto PRIMA il vecchio è caduto, quindi un fallimento tra lascia il tavolo protetto da uno piuttosto che da nessuno. Solo allora rilassare lead uid non è NULL. Hibernate's ddl-auto: aggiornamento aggiunge colonne ma mai rilassa un vincolo, quindi questo non può essere lasciato al mappatura — e facendolo prima che lo swap si apre esattamente la finestra duplicata sopra. Quindi verificare, leggendo pg constraint e information schema indietro. The chiavi primarie cliniche sono state corrette in Java e sbagliato nel DDL emesso, e solo la lettura pg constraint ha mostrato. Una riga sinistra senza proprietario tipo non comparirebbe mai su alcuna linea temporale, in modo che il caso registri un errore piuttosto che a rapporto di successo. Idempotent in tutto, e un tavolo mancante è saltato piuttosto che mancare l'avvio — un'eccezione qui prenderebbe ogni secondo corridore con esso. 176 test verdi.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo