Netzkompetenz

Blog mit Snippets, Tipps und Tricks rund um Webprogrammierung der Taywa aus Zürich

django upgrade 1.6 auf 1.11

Hier eine Zusammenfassung einiger Upgradeschritte die nötigen waren um ein django 1.6 Projekt auf django 1.11 upzugraden.

Migrations

In django 1.6 wurde in der Regel django south für Datenbankmigrationen benutzt seit Version 1.7 besitzt django selber Datenbankmigrationen.

Als erstes muss man alle eigenen south migrationen löschen z.B. mit

dies löscht alle migrations files im aktuellen folder und tiefer.

Als nächstes muss man die initialen migrations wieder anlegen, und fake migrations ausführen, da man die Tabellen nicht geändert

Falls man ein Custom User Model benutzt, muss man die column last_login manuell in der DB ändern, ansonsten kommt es zu startup Fehlern.

Context, Render

Die Python Class RequestContext ist nicht mehr vorhanden. Alle imports müssen gelöscht werden.

Anstatt der Class RequestContext() kann man ein einfach ein dict() verwenden für den context

die imports, statements mit

müssen ersetzt werden mit

Named urls

Dies ist nicht zwingend nötig, aber bei diesem upgrade empfehle ich auch gerade auf named urls umzustellen. z.B.

auf

string views habe ich alle in callables geändert z.b.

 

andere apps

Wenn man noch andere django apps benutzt kann es zum Teil schwierig sein diese zu migrieren:

  • manchmal gibt es auch keine neuere Version, und man muss die django app ersetzten
  • die Datenstruktur lässt sich nicht migrieren, manuelle Anpassungen können nötig sein

in diesem Projekt habe ich z.B.

  • django-mediagenerator durch django-compressor ersetzt

Reine Python packages lassen sich in der Regel einfach updaten.

Autor: am
Themen: Django / Python

TrackBack URL

Hinterlasse einen Kommentar, wir freuen uns über jedes Feedback.