Ho recentemente iniziato a utilizzare South per le migrazioni nel mio progetto Django. Tutto andava bene fino a poco tempo fa, quando mi sono imbattuto in un problema particolare.Quale ordine di migrazione segue il Sud tra diverse app?
Ho due app nel mio progetto, ad esempio App-A e App-B. Un modello in App-A ha una chiave esterna per un modello in App-B. Quando ho provato a creare il mio sistema, ho eseguito syndb
che ha creato tutte le tabelle auth_
e south_
. Quindi ho eseguito migrate
che ha generato errori. Quando ha provato a creare il modello da App-A, che fa riferimento a un modello da App-B, il modello App-B non è stato ancora migrato/creato e quindi l'errore.
Per risolvere questo problema, ho dovuto migrare manualmente prima App-B e poi App-A. Sto facendo qualcosa di sbagliato qui? In che modo South dovrebbe conoscere l'ordine di migrazione tra le app?
Grazie.
Basta up-votato questo perché questo è in realtà molto importante. '' depends_on' e needed_by' sembra controllare solo le migrazioni attuali. Se sei appena iniziato con le migrazioni, come nel mio caso, South tenterà di caricare i dati iniziali per un'app dopo il completamento della migrazione. non essere disponibile prima di un altro che ne aveva bisogno e si è imbattuto in questioni chiave straniere. Sono stato in grado di risolvere questo problema riordinando le app in "INSTALLED_APPS".South esegue l'app nell'ordine in cui sono in "INSTALLED_APPS" facendo una pausa per eseguire tutte le dipendenze di migrazione esistenti. – jaywhy13