Le migrazioni dovrebbero modificare i dati?

0

Immagina di avere una tabella con 5 colonne e devi dividerla in due tabelle, perché nel tuo processo iterativo la tua applicazione è diventata più complessa.

Le migrazioni dovrebbero cambiare anche i dati? Dopo tutto, stai lasciando cadere due colonne e spostandole in un'altra tabella, e ora queste due tabelle probabilmente hanno bisogno di una chiave esterna per collegarle.

Ciò che mi ha confuso qui è che, per quanto ne so, le migrazioni sono solo responsabili della modifica della struttura del database. Va tutto bene su un database di sviluppo, ma cosa faresti quando vuoi inserirlo in un database live?

    
posta Parham Doustdar 18.06.2015 - 08:42
fonte

1 risposta

1

Le migrazioni dovrebbero cambiare i dati quando necessario, altrimenti non soddisfano il loro scopo di prendere un database che funzioni per una vecchia versione dell'applicazione e farlo funzionare per le versioni più recenti. Le migrazioni sono anche il posto migliore per farlo, perché puoi fare supposizioni sulla struttura del database prima e dopo l'esecuzione della migrazione.

Una cosa da tenere a mente però - se prevedi di utilizzare l'ORM per queste modifiche, assicurati di utilizzare le classi idonee per lo stato di post-migrazione del database, non quelle che l'applicazione sta utilizzando, perché quelle l'applicazione utilizza come target la versione latests dello schema del database, non quella in cui verrà eseguita la migrazione. Se il tuo ORM non gli consente di non utilizzarlo nella migrazione, usa invece SQL raw.

    
risposta data 18.06.2015 - 10:52
fonte

Leggi altre domande sui tag