Il problema con le squadre e le migrazioni si verifica quando più di una persona fa una migrazione nella stessa fascia oraria, ed entrambi ottenere impegnati senza l'altro essendo stato applicato . Questo è analogo a due persone che modificano lo stesso file in un VCS allo stesso tempo e, come un VCS, Sud ha modi per risolvere il problema.
In questo caso, la prima cosa da notare è che il Sud in grado di rilevare il problema , ed emettere un messaggio come questo:
Inconsistent migration history
The following options are available:
--merge: will just attempt the migration ignoring any potential dependency
conflicts.
Se rieseguire la migrazione con --merge
, Sud sarà semplicemente applicare il migrazioni che erano mancanti fuori ordine. Questo di solito funziona, poiché i team stanno lavorando su modelli separati; in caso contrario, dovrai leggere le modifiche effettive alla migrazione e risolverle manualmente come , è probabile che entrino in conflitto.
La seconda cosa da notare è che, quando si tira in qualcun altro cambiamenti modello completo con la propria migrazione, è necessario fare una nuova migrazione vuota che ha le modifiche da entrambi i rami del sviluppo congelati in (se hai usato mercurial, questo è equivalente a un commit merge). Per farlo, basta eseguire:
./manage.py schemamigration --empty appname merge_models
(Si noti che merge_models
è solo un nome di migrazione; cambiarlo per quello che vuoi)
Il messaggio importante è che il Sud non è un sostituto per la squadra coordinamento - In effetti, la maggior parte delle funzioni sono lì per avvertire semplicemente che non hai coordinato, e la semplice fusione in offerta è solo lì per i casi facili. Assicurati che il tuo team sappia chi sta lavorando su cosa, in modo che non scrivano le migrazioni che interessano le stesse parti di il DB allo stesso tempo.
Mostra che è buono leggere i documenti;) +1 – Tadeck