Django Selektive Dumpdata
Ist es möglich, selektiv filtern, welche Datensätze Django ' s dumpdata management-Befehl gibt? Ich habe ein paar Modelle, jedes mit Millionen von Zeilen und ich will nur dump die Datensätze in einem Modell den Einbau einer spezifischen Kriterien, sowie alle Fremdschlüssel verknüpften Datensätze verweisen auf alle Datensätze.
Betrachten diesen Fall. Sagen, ich hatte eine Produktions-Datenbank, wo mein User-model hat Millionen von Datensätzen. Ich habe mehrere andere Modelle (Log -, Transaktions -, Kauf -, Bookmarks, etc) alle verweisen auf die Benutzer-Modell. Ich möchte zur Entwicklung auf meinem Django-app, und ich möchte test mit realistischen Daten. Aber, meine Produktion Datenbank ist so gewaltig, ich kann es nicht realistisch einen Schnappschuss von der ganzen Sache, und laden Sie Sie lokal. Also ideal, ich würde wollen, verwenden dumpdata dump 50 zufällige Benutzer-Datensätze, und alle verknüpften Datensätze zu JSON und verwenden Sie die zum Auffüllen eines Entwicklung-Datenbank.
Gibt es eine einfache Möglichkeit, dies zu erreichen?
InformationsquelleAutor der Frage Cerin | 2011-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke django-Leuchte-magic könnte einen Blick Wert sein.
Finden Sie einige weitere hintergrund-Infos in Schrubben Sie Ihre Django-Datenbank.
InformationsquelleAutor der Antwort arie
Diesem snippet für Sie nützlich sein könnte (es folgt Beziehungen und serialisiert):
http://djangosnippets.org/snippets/918/
Könnten Sie auch, dass das management den Befehl und überschreiben der Standard-Manager für welche Modelle Sie möchten, um benutzerdefinierte querysets.
InformationsquelleAutor der Antwort Phil Avery
Dies ist nicht eine einfache Antwort auf meine Frage, aber ich fand einige interessante Dokumentation über Django built-in Natürliche Schlüssel-featuredie es erlauben würde, vertritt die serialisierten Datensätze ohne Primärschlüssel. Leider, es sieht nicht wie diese ist voll integriert in dumpdata, und es gibt einen alten herausragende ticket vollständig verlassen sich auf die natürlichen Schlüssel.
Scheint es auch die serialisierungsprogramme.serialize () - Funktion ermöglicht die Serialisierung eine beliebige Liste von spezifischen Modell-Instanzen.
Vermutlich, wenn ich implementiert eine natural_key () - Methode auf alle meine Modelle, und dann rief serialisierungsprogramme.serialize([Users.Objekte.filter (- Kriterien)]), sollte es in der Nähe zu vollbringen, was ich will. Ich haben könnte, um eine Funktion schreiben, die kriechen alle FK Referenzen, und schließen diejenigen ein, die in der Liste von Objekten übergeben serialize().
InformationsquelleAutor der Antwort Cerin