Django 1.8创建了迁移但没有任何变化

时间:2015-05-21 14:21:26

标签: django django-models django-migrations

我遇到了Django 1.8.2应用程序的迁移问题。我使用了两个模型ProductFeeProduct最近对其{{​​1}}字段进行了更改。 unique_togetherFee字段没有任何更改。当我运行unique_together时,我得到一个包含两个更改的文件:

./manage.py makemigrations

您会注意到它正在更改operations = [ migrations.AlterUniqueTogether( name='fee', unique_together=set([('product', 'fee_type', 'content_type', 'object_id', 'activation_date')]), ), migrations.AlterUniqueTogether( name='product', unique_together=set([('producer', 'product_type', 'term')]), ), ] 的唯一约束约束,这很好。但是它也是为Product做的。这会导致错误,因为数据库中已经存在唯一的约束约束。错误为Fee

每次运行django.db.utils.ProgrammingError: relation "product_fee_product_id_7b033c697cde4424_uniq" already exists时,我都会获得./manage.py makemigrations模型的AlterUniqueTogether内容,即使我只是将其注释掉,也不会将其从文件中删除。如何阻止Fee检测到此不存在的更改?

1 个答案:

答案 0 :(得分:0)

您可以尝试创建仅仅为Fee模型一起更改唯一身份的迁移,然后使用--fake选项应用它

./manage.py migrate yourapp 00XX_your_migration --fake

在您伪造迁移后,更改不应包含在您创建的任何新迁移中。