mysql - 运行 python manage.py loaddata datadump.json 时出现数据库错误

标签 mysql django sqlite mysql-error-1062

我正在将 Django 数据库从 sqlite 迁移到 mysql。我已完成以下操作,没有出现任何问题:

python manage.py dumpdata > datadump.json 将您的settings.py更改为mysql数据库。

但是当我发出以下命令时 python manage.py loaddata datadump.json 我收到此错误:

完整性错误:(1062,“ key “from_category_id”的条目“13-13”重复”)

有人可以告诉我如何解决此问题,以便我可以再次运行该命令并希望加载我的数据吗?

谢谢, J.

最佳答案

  1. 数据库中有现有数据吗?
  2. 尝试使用 indent --4 来获得您可以观察到的版本
  3. 发布一些示例数据
  4. 看起来您遇到了重复键违规,或者您尝试插入的数据与列类型不匹配,即检查 models.py 中应用的约束、字段类型以及 mysql 中创建的表

接下来的问题是为什么它在 SQLITE 中工作而不是在我的 sql 中工作?

很简单,SQLITE 不进行任何类型检查,即您可以轻松地将文本插入到整数字段中。在将数据插入 MySQL 之前,您需要清理数据。

Unlike most SQL databases, SQLite does not restrict the type of data that may be inserted into a column based on the columns declared type. Instead, SQLite uses dynamic typing.

来自http://www.sqlite.org/lang_createtable.html

关于mysql - 运行 python manage.py loaddata datadump.json 时出现数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371375/

相关文章:

php - 需要选择并显示特定用户编写的所有条目并对其进行计数

python - Django:部署时需要重启 Apache 吗?

django - 在到达 View 集之前记录所有 REST API 请求

sqlite - sqlite3 eval中的tcl var替换

php - 在 CREATE TABLE 语句中转义 SQL 数据类型

包含磅和盎司的 mysql 文本单元格

php - 如何将两个 PDO 查询合并为一个?

南姜 : changing field type in data migration

java - 在添加新数据之前如何清除 SQLite 表中的所有条目?

c# - 使用 C# 将数据插入 SQLite 数据库