Ich habe auf der South-Website, Google und SO nach einer Antwort gesucht, konnte aber keinen einfachen Weg finden, dies zu tun.Einfachste Möglichkeit, ein Modell mit Django/South umzubenennen?
Ich möchte ein Django-Modell mit South umbenennen. Angenommen, Sie haben die folgenden:
class Foo(models.Model):
name = models.CharField()
class FooTwo(models.Model):
name = models.CharField()
foo = models.ForeignKey(Foo)
und Sie möchten Foo konvertieren, es einfach zu Bar, nämlich
class Bar(models.Model):
name = models.CharField()
class FooTwo(models.Model):
name = models.CharField()
foo = models.ForeignKey(Bar)
zu halten, ich bin gerade von Foo
zu Bar
den Namen zu ändern versuchen, aber ignorieren Sie das foo
Mitglied in FooTwo
für jetzt.
Was ist der einfachste Weg, dies mit South zu tun?
- Ich könnte wahrscheinlich eine Datenmigration tun, aber das scheint ziemlich beteiligt.
- Schreiben Sie eine benutzerdefinierte Migration, z.
db.rename_table('city_citystate', 'geo_citystate')
, aber ich bin mir nicht sicher, wie man den Fremdschlüssel in diesem Fall repariert. - Ein einfacher Weg, den Sie kennen?
Siehe auch http://stackoverflow.com/questions/3235995/django-how-to-rename-a-model-field-using-south zum Umbenennen eines * Modellfelds * anstelle eines * Modells *. –
Optimierte Lösung für Django> = 1.8 http://stackoverflow.com/questions/25091130/django-migration-strategy-for-renaming-a-model-and-relationshipfields –