-1
我有一個需要在其上執行遷移的Django應用程序。這裏是什麼,我需要修改一個代表性的模式:在Django遷移中摺疊重複的外鍵值
class A(Model):
c = ForeignKey(C)
...
class B(Model):
c = ForeignKey(C)
...
class C(Model):
x = CharField()
y = CharField()
z = CharField()
class Meta:
unique_together = (('x', 'y', 'z'),)
z
不再相關的外鍵C
的唯一性。所以我打算刪除z
這個字段,並將其唯一要求更改爲x
和y
。
但首先我需要做一個數據遷移,即丟棄即將到來的重複條目,和我需要修復所有ForeignKeys以指向單個統一條目。
我期待,如果有比我將在我的回答如下勾勒出一個更好的辦法。我對我的回答並不完全滿意,因爲它沒有任何保護措施來丟棄仍在使用的外鍵 - 除了算法本身。 (喜歡什麼,如果有也是C
另一個外鍵關係我忽視了。)
(Django的1.7 &的Postgres)