【问题标题】:Integrity error django完整性错误django
【发布时间】:2013-03-18 03:01:05
【问题描述】:

我在 django 项目中将 sqlite3 用于我的数据库,然后我决定将其更改为 mysql 引擎。我正确更改了settings.py中的所有内容,为了不丢失数据库,我将我的sqlite转储为文本,并用`更改了每个“,删除了提交和与sqlite3相关的所有内容。我在mysql上执行了转储文件并一切都添加得很完美。但是,当我尝试在名为类别的表中添加类别时。

我收到此错误消息

/admin/red_carpet/category/处的 IntegrityError
(1062,“密钥 1 的重复条目 '0'”)

我认为密钥是重复的,错误是什么。我查看了“id”列以查看它的结构,我发现 id 列是“NOT NULL”。该列没有添加自动增量,所以我添加了它并尝试从管理页面执行类别我得到了同样的错误我再次查看了结构然后我添加了auto_increment不应该从0开始的查询但是应该从最后一个值为 6 的值开始。然后我再次从 django admin 添加了类别,但我仍然得到同样的错误,再次查看结构​​,尤其是在 phpmyadmin 的索引部分中,我发现了该行

Keyname Type        Cardinality  Action  Field
PRIMARY  PRIMARY       9                 id

对我来说,一切看起来都不错,实际上,当我通过 django admin 添加价值时,我得到了添加,尽管我收到了相同的错误消息

/admin/red_carpet/category/处的 IntegrityError
(1062,“密钥 1 的重复条目 '0'”)

我真的不明白为什么会出现这个问题!!!!任何人以前都彻底了解过这个! ??

PS:当我尝试删除某些内容时,我会收到相同的错误消息。例如,如果我要删除一个类别,我会收到 exat 错误消息,但是当我查看数据库时,我发现该类别已被删除!

【问题讨论】:

  • @okm 当然在我发布问题之前我已经这样做了

标签: mysql django sqlite


【解决方案1】:

防止跨数据库问题的一种方法是使用固定装置,例如以(db-agnostic)json 格式转储和加载您的数据:

见dump data command 和 what is a fixture 来自 django 文档。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多