Kann ich eine dumpdata
in Django durchführen nur ein einziges Modell und nicht die gesamte App , und wenn ja, wie?
Für eine App wäre es:
python manage.py dumpdata myapp
Ich möchte jedoch, dass ein bestimmtes Modell wie "myapp.mymodel" ausgegeben wird. Der Grund dafür ist, dass ich einige riesige Datensätze mit mehr als 3 Millionen Datensätzen in derselben App habe, die ich nicht ausgeben möchte.
django
django-models
loaddata
dumpdata
nategood
quelle
quelle
Antworten:
Ab Version 1.1
dumpdata
können Sie mit dem Django- Verwaltungsbefehl Daten aus einzelnen Tabellen sichern:Sie können auch mehrere Apps und Modelle in der Befehlszeile trennen. Hier ist die kanonische Definition:
quelle
--indent 4
nachdumpdata
Wie bereits erwähnt, können Sie dies nicht über einen Befehl manage.py in Django 1.0 tun. Sie können jedoch ein Skript verwenden, um die JSON-Datei zu exportieren und sie zu laden, indem Sie
loaddata
:quelle
Nehmen Sie alle Daten aus dem Django-Modell in das JSON-Format.
Syntax:
Zum Beispiel Daten aus group_permission Modell Dumping , die in django in Standard - Auth App befinden.
Für die Ausgabe schauen Sie auf die Konsole .
quelle
Ich denke, Sie hatten die Lösung in Ihrer Frage. Sie können ein einzelnes Modell wie folgt ausgeben:
quelle
Für den Erfolg musste ich es zweimal sagen und das Modell zweimal spezifizieren, wie:
Wenn ich nur sagen würde
Ich wurde mit allen Modellen in myapp2 überflutet, obwohl ich my_model angegeben habe.
quelle
Um dieses Problem zu umgehen, können Sie eine andere App erstellen und das Modell kopieren, es jedoch mit der Metaoption db_table auf die vorhandene Tabelle verweisen. Dann können Sie einfach die Modelle, die Sie kopiert haben, in die neue App kopieren. Ihre vorhandene App wäre nicht betroffen.
quelle
Ich habe einen Verwaltungsbefehl erstellt, mit dem ein Gerät pro Modell generiert wird. Fixtures können durch Ausführen von:
Code unter: https://gist.github.com/2394883
quelle
So schreiben Sie es in eine bestimmte Datei:
quelle