gpt4 book ai didi

django - 在 Django 迁移期间收到 "ValueError: Found wrong number (0) of constraints for ..."

转载 作者:行者123 更新时间:2023-12-03 11:53:21 25 4
gpt4 key购买 nike

在使用 Django 1.7 迁移时,我遇到了一个在开发中有效但在生产中无效的迁移:
ValueError: Found wrong number (0) of constraints for table_name(a, b, c, d)
这是由 AlterUniqueTogether 引起的规则:

   migrations.AlterUniqueTogether(
name='table_name',
unique_together=set([('a', 'b')]),
)

阅读 Django 错误数据库中的错误等似乎是关于现有的 unique_together在与迁移历史不匹配的数据库中。

如何解决此错误并完成迁移?

最佳答案

(Postgres 和 MySQL 答案)

如果您查看实际表(使用 \d table_name )并查看索引,您将找到唯一约束的条目。这就是 Django 试图找到并删除的内容。但它找不到完全匹配的。

例如,

"table_name_...6cf2a9c6e98cbd0d_uniq" UNIQUE CONSTRAINT, btree (d, a, b, c)

在我的情况下,键的顺序 (d, a, b, c)与它希望删除的约束不匹配 (a, b, c, d) .

我回到了我的迁移历史并更改了原来的 AlterUniqueTogether以匹配数据库中的实际订单。

然后迁移成功完成。

关于django - 在 Django 迁移期间收到 "ValueError: Found wrong number (0) of constraints for ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com