Django unterstützt das Laden von SQL-Dateien, wenn syncdb tut, Reset oder einen Testläufer starten - das ist genau das, was Sie beschreiben:
http://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-sql-data
Sie benötigen ein "SQL" Verzeichnis in der App erstellen Verzeichnis und dann eine Datei namens "mymodel.sql" in diesem Verzeichnis (wobei "MyModel" der entsprechende Modellname ist).
Sie können diese SQL mit Dump-Tools für Ihre Datenbank erstellen.
- SQLite [1]: echo '.dump' | sqlite3 yourdbname.sqlite> MeineAnw/SQL/mymodel.sql
- MySQL [2]: Mysqldump yourdbname> MeineAnw/SQL/mymodel.sql
- PostgreSQL [3]: pg_dump yourdbname> MeineAnw/SQL/mymodel.sql
Nach dem Dumping müssen Sie die Datei bearbeiten, um alles außer den entsprechenden INSERT-Anweisungen oder anderen komplizierten Dingen zu entfernen. Insbesondere müssen Sie Transaktionsverarbeitung, Indexerstellung und Tabellenerstellung von SQL entfernen, um Fehler beim Laden doppelter Erstellungsanweisungen zu vermeiden.
Ich benutze diese Methode für das Laden wirklich, wirklich große Geräte - es dauert viel zu lange, um die JSON zu verarbeiten, aber ein geradliniger SQL-Import ist ziemlich bissig.
Beachten Sie, dass diese Methode das sql für jeden Aufruf von synchdb, reset usw. lädt, zusätzlich zum Laden von Daten für den Test-Runner - so dass Sie keine unterschiedlichen Daten für verschiedene Testfälle haben können , und Sie müssten Dateien vor einem Zurücksetzen entfernen, wenn Sie nicht möchten, dass sie wieder auf Ihren Produktionsserver geladen werden.
[1] http://www.sqlite.org/sqlite.html
[2] http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
[3] http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP
Wenn ich mich nicht irre Laden SQL würde schneller sein, weil es nicht den Overhead hat, die Leuchten zu tun. Ich suche das gleiche Problem zu lösen. Ich muss eine große Datenbank zum Testen laden, und ich möchte das Laden schnell halten. – Jeff
Ich verwende generische Beziehungen ausgiebig, was ein Problem bei der Verwendung von Fixtures ist. Es scheint, dass dies gerade in der Arbeit zu 1.2 gelöst wurde, siehe http://docs.djangoproject.com/en/dev/topics/serialization/#natural-keys – knutin
Es ist eine Schande, dass man Kommentare nur nach oben und nicht nach unten abstimmen kann. Dieser erste Kommentar stinkt nur. – boatcoder