Ich habe ein vorhandenes Modell um ein Viele-zu-Viele-Feld erweitert und erwartet, dass syncdb
eine neue Tabelle erstellt, aber da ist nichts. So sieht das Modell aus:
Das Ausführen von sql myapp
gibt die korrekten Anweisungen mit der neuen Tabelle aus, aber dies wird nicht angezeigt, wenn ich syncdb
ausführen. validate
gibt auch keine Fehler zurück. Weiß jemand, was hier los sein könnte? Oder eine bessere Diagnose?
Der Befehl syncdb erstellt nicht viele bis viele Tabellen für vorhandene Modelle nach Entwurf. Diese Entscheidung wird auf Ticket 2229 erläutert.
Das gibt Ihnen ein paar Optionen.
Ich fand diese Erklärung in den django Dokumenten nützlich: SchemaEvolution .
Der De-facto-Standard für die Datenbankmigration ist Django South.
Es ist nicht perfekt, aber es funktioniert ziemlich gut. Sie sollten Ihre Migrationsdatei immer überprüfen (und ggf. bearbeiten), bevor Sie sie ausführen, um sicherzustellen, dass sie tatsächlich das tut, was sie tun soll. Sie können das Lernprogramm hier lesen.
Auch, wenn Sie ausführen:
%Vor%Sie können schnell herausfinden, ob Ihre Datenbankstruktur zu Ihren Django-Modellen passt.