Mit Django Datenbank Tabellen aendern




...geht leider nicht. Ist ein Datenbank Model einmal definiert, laesst es sich nicht ohne Umwege erweitern. Ruby on Rails ist da schon ein Stueck weiter.



Das Problem laesst sich aber mit einem kleinen Trick loesen. Mit Django hat man die Moeglichkeit die komplette Datenbank serialisiert zu dumpen und anschliesend wieder zu laden. Die Vorgehensweise ist einfach, einen Dump vom Model bzw. der ganzen Datenbank machen, Model um die gewuenschten Felder erweitern, DB Tabellen loeschen, Tabellen mit syncdb neu anlegen und den Dump wieder einspielen.

Die komplette Datenbank kann mit
python manage.py dumpdata > mydump.json
gedumpt werden. Einzelne Models mit
python manage.py dumpdata MyModel > mydump.json
Das importieren des Dumps geht wie folgt:
python manage.py loaddata mydump.json
Will man aber z.B. eine Anwendung mit initialen Daten versorgen, dann kann das mit Fixtures gemacht werden. Hierfuer ist ein Eintrag in der Settings Datei notwendig. Liegt nun in diesem Verzeichnis eine Datei mit der Endung json, dann wird diese automatisch beim syncdb geladen und importiert.

17. April, 2008

Kommentar hinzufügen