我需要使用南迁移在我的django模型中重命名一个外键。当我发现这个线程How to rename a foreignkey field with South?时,我认为我很幸运,然而,所有描述的方法都失败了,并出现了各种错误。有没有人真的知道该怎么做呢?
我想将SomeModel.registered_to = models.ForeignKey( User )重命名为SomeModel.owner = models.ForeignKey( User ),并保持User和owner之间的关系,如果有任何帮助,将不胜感激!
发布于 2012-03-06 00:30:43
更改字段名称并运行python manage.py schemamigration --auto yourapp。South将添加代码来删除该列并添加一个新列。让South生成迁移可以确保ORM被正确冻结,因此您只需将实际迁移更改为重命名,而不是删除和添加。只需从向前和向后迁移到中删除这些行,并将其替换为:
def forwards(self, orm):
db.rename_column('yourapp_yourmodel', 'registered_to_id', 'owner_id')
def backwards(self, orm):
db.rename_column('yourapp_yourmodel', 'owner_id', 'registered_to_id')保存,然后迁移你的应用。
https://stackoverflow.com/questions/9569963
复制相似问题