Ich versuche etwas über python-django
zu erfahren.
Ich möchte selbst benannte Bücher erstellen.
Wenn ich diesen Befehl ausgeführt habe
%Vor%Folgefehler tritt auf
CommandError: App 'Bücher' hat Migrationen. Nur die Befehle sqlmigrate und sqlflush können verwendet werden, wenn eine App Migrationen aufweist.
Ich habe nicht verstanden, warum dieser Fehler auftaucht und was bedeutet das? Jede Hilfe wäre willkommen. Danke
Sie können entweder
ausführen %Vor%gefolgt von
%Vor%oder löschen Sie einfach den Migrationsordner
BEARBEITEN - 'Makemigration' in 'Makemigrationen' geändert
Nach Eingabe von python manage.py sqlall --help
bekomme ich Folgendes:
Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).
Es gibt das SQL aus, das zum Erstellen dieser Tabellen verwendet wird. Da sie bereits existieren, druckt Django sie nicht und weist an, sqlmigrate
(Druck-SQL für eine bestimmte Migration) oder sqlflush
(Druck-SQL, der Tabellen in ihren Ausgangszustand zurückversetzt) zu verwenden.
Aus der django-Dokumentation von sqlall
django-admin.py sqlall
Gibt die CREATE TABLE- und Initial-Data-SQL-Anweisungen für den angegebenen Ausdruck aus App-Name (n).
In späteren Versionen von django ab 1.7 kannst du das gleiche tun:
python manage.py sqlmigrate appname migration_name
Wenn Sie dem Django-Tutorial folgen, ist dies in Ihrem Fall
python manage.py sqlmigrate books 0001
Das hat bei mir in django 1.8 funktioniert. Sie können mehr aus der Dokumentation von sqlmigrate
lesen
django-admin sqlmigrate
Druckt das SQL für die benannte Migration. Dies erfordert eine aktive Datenbankverbindung, die zum Auflösen von Constraint-Namen verwendet wird. Das bedeutet, dass Sie das SQL gegen eine Kopie der Datenbank generieren müssen, auf die Sie es später anwenden möchten.