我想从以下型号的unique_together
中移除class Meta
约束。
class x(models.Model):
basket = ...
line_reference = ...
...
class Meta:
unique_together = ("basket", "line_reference")
verbose_name = _('Basket line')
verbose_name_plural = _('Basket lines')
我尝试评论unique_together
行并运行makemigrations
但Django未检测到任何更改。我使用视图检查了这种关系约束仍然存在。我该如何删除这种关系。我的数据库是postgresql
。
答案 0 :(得分:1)
如果仅在发现关系及其创建的属性发生变化时,在models.py中进行注释将无助于迁移。 unique_together 是一种约束,如果您只是评论,则迁移不会检测到它们。
我希望您仍然拥有迁移文件夹,并且所有生成的迁移都保持不变。
如果任何事情搞得太糟糕和你在自己的开发者环境中不会打扰其他任何人,请继续清除所有迁移并重置数据库
其他如果您仍有迁移且不想删除它们,可以尝试以下操作。 步骤:
migrations.AlterUniqueTogether
的迁移文件,并对该文件以及随后发生的所有内容进行评论。\d+ <table name>
查看所有索引和约束。找到具有("basket", "line_reference")
的一个约束。算了吧。命令为ALTER TABLE <table_name> DROP CONSTRAINT <name_of_constraint>
migrate <app_name>
或migrate
希望这有效。