【发布时间】:2011-08-29 03:12:09
【问题描述】:
似乎这应该是“简单的”或至少记录在某个地方,我只是找不到它。
假设我有一个模型:
class A(models.Model):
users = models.ManyToMany('auth.User', blank=True)
现在我想迁移到有一个through 表来向多对多关系添加字段...
class AUsers(models.Model):
user = models.ForeignKey('auth.User')
a = models.ForeignKey('A')
new_field = models.BooleanField()
class A(models.Model):
users = models.ManyToMany('auth.User', blank=True, through='AUsers')
然后我做:
% ./manage.py schemamigration app --auto
并不完全令人惊讶,它告诉我它将删除通过表自动创建的原始表并为AUsers 创建一个新表。此时的最佳做法是什么?有没有一种体面的方法可以迁移到新的through 表?我在 Meta 中使用db_table 吗?我只是不立即使用through=......然后执行schemamigration --auto,然后执行datamigration 来复制当前表(不知何故,不确定...),然后添加through 关系并让它会毁了桌子吗?
这里有什么诀窍?真的有那么难吗?
【问题讨论】:
标签: django django-south