0

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

我收到此错误消息

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

我认为关键是重复的错误是什么。我查看了“id”列以查看它的结构,我发现 id 列是“NOT NULL”。该列没有添加自动增量,所以我添加了它并尝试从管理页面执行类别我得到了同样的错误我再次查看了结构,然后我添加了auto_increment不应该从 0 开始但应该从 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 错误消息,但是当我查看数据库时,我发现该类别已被删除!

4

1 回答 1

0

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

请参阅django 文档中的转储数据命令固定装置

于 2013-03-28T13:07:09.400 回答