2010-11-22 9 views
0

Ich habe eine Live-Django-Website, die bereits registrierte Benutzer hat. Ich versuche, die Seite mit einer neuen Version zu aktualisieren, die sich von der ursprünglichen Site unterscheidet - ähnliche Ideen, aber unterschiedliche Modelle.Wie pflegen Sie Benutzerdaten beim Aktualisieren einer Django-Site?

Wie kann ich die aktuellen Benutzer auf der neuen Website behalten?

Ich habe gehört, South kann eine gute Lösung sein, aber die alte Website hat es nicht installiert. Ist es möglich, in diesem Fall South zu verwenden?

Danke für die Hilfe!

Antwort

0

+1 nach Süd, aber ...

Wir brauchen mehr Informationen! Machst du radikale Änderungen an deinen Modellen oder fügst oder entfernst einfach Felder hier oder dort?

South kann einige ziemlich radikale Migrationen durchführen, aber Sie müssen einen benutzerdefinierten Migrationscode schreiben. Persönlich verwende ich South, wenn ich ein neues Feld hinzufüge, aber nicht für diese Art von radikalerem Zeug.

Wenn es eine große Schemaänderung ist, Ihre Seite völlig neu organisierend, dann schreibe ich nur Ihr eigenes Skript, um die alten Gegenstände zu lesen und die neuen zu verursachen. Erstellen Sie eine Kopie Ihrer Produktionsdatenbank (über pg_dump, mysqldump usw.) und laden Sie sie auf Ihren lokalen Rechner, wo Sie das benutzerdefinierte Konvertierungsscript testen und debuggen können. Stellen Sie sicher, dass Ihre "alten Modelle" und "neue Modelle" unterschiedliche Namen haben, und behalten Sie alles in Ihrer settings.py bei, so dass Sie immer lesen können & alles schreiben.

Schreiben Sie & Testen Sie das Migrationsskript, und nachdem das funktioniert, können Sie eine weitere Änderungsliste erstellen, um alle alten Objekte zu löschen, und dann den entsprechenden Quellcode entfernen, wenn Sie möchten.

Verwandte Themen