2012-03-02 7 views
6

Sto scrivendo una migrazione sud Django che dipende dal modello in un altro app, quindi ho inserito --freeze OTHERAPPNAME quando mi sono imbattuto python manage.py datamigration …Django-South DataMigration - L'app è disponibile in avanti() ma non indietro()?

Tuttavia nella funzione forwards() posso accedere al altro modello fine (con orm['otherappname.MyModelName']), ma in il backwards() fase (che dipende anche dal modello otherappname), se provo ad accedere orm['otherappname.MyModelName'], ottengo un errore

*** KeyError: "The model 'mymodelname' from the app 'otherappname' is not available in this migration." 

posso vedere i dettagli del modello congelati nella parte inferiore del file. Perché non posso accedervi?

NB: questo modello viene creato in un'altra migrazione all'interno di un altro nome di cui dipende questa datamigration.

risposta

10

La migrazione all'indietro utilizza effettivamente l'ORM congelato della precedente migrazione. È logico quando ci pensi, ma è certamente non molto intuitivo.

Morale: blocca i modelli necessari nella propria migrazione dei dati nella schemamigrazione che procede.

Problemi correlati