Per risolvere il problema qui è quello che ho fatto:
1) Trova tutti i campi di relazione di chiave esterna come OneToOneField, ForeignKey e ManyToManyFields nel progetto, incluse le app riutilizzabili che si riferiscono a auth.User
o importate l'utente e impostarlo su settings.AUTH_USER_MODEL come sopra. Al minimo impiego:
'auth.User'
2) Per tutti i modelli che hanno la precedenza, assicurarsi che i modelli hanno una migrazione Django valido (non a sud). Se hanno le migrazioni sud, rinominare la directory di migrations_south e quindi eseguire il comando makemigrations per questo app:
./manage.py makemigrations affected_app
a volte c'è una cartella migrazioni Django con un nome diverso, non la directory di default migrations
. In questi casi, fare riferimento a questo tramite MIGRATION_MODULES
nel vostro settings.py:
MIGRATION_MODULES = {'filer': 'filer.migrations_django'}
Dal momento che il problema era difficile da trovare su grandi progetti, ho commentato tutte le applicazioni personalizzate in INSTALLED_APPS
in settings.py e fatto funzionare l'ordine di prova, dal momento che verrà eseguito la migrazione e cercare di ricreare il database per voi:
./manage.py test
Sembra quello fissato per me. Non sono sicuro che il passaggio 1 sia obbligatorio o solo la migliore pratica. Ma hai sicuramente bisogno di convertire le app in migrazioni.
Cheers!
PS. Preparati a ciò che sta arrivando in Django 1.9. Il comando syncdb verrà rimosso. Il metodo legacy di sincronizzazione delle app senza migrazioni viene rimosso e le migrazioni sono obbligatorie per tutte le app.
Sul mio ambiente, questo solo accadere usando 'Postgre'. –