Django 1.10在安装灯具时引发错误:没有这样的列:REFERRED.id

时间:2017-02-07 21:08:32

标签: json django-admin loaddata

我用这个命令创建了一个夹具:

python manage.py dumpdata --natural-primary --natural-foreign -e admin -e contenttypes -e auth.Permission --format=json --indent=2 --all > gc_core/fixtures/initial_data.json

然后我试着在我的另一台机器上测试它。所以我删除了我的数据库并在那里运行迁移:

./manage.py migrate

然后我尝试使用loaddata填充我的数据库:

./manage.py loaddata gc_core/fixtures/initial_data.json

然后Django提出了这个错误:

django.db.utils.OperationalError: Problem installing fixtures: no such column: REFERRED.id

我不知道这意味着什么。我应该在名为REFERRED.id的地方有一个专栏吗?

我的灯具和数据库中没有这样的列,我没有在我的任何应用程序中定义这样的模型。

那么什么是REFERRED.id以及如何解决?

我正在使用 Django 1.10 Python 3.5.2 SQLite 。我正在尝试加载的工具是 JSON 格式。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

当我遇到同样的问题时,我偶然发现了这个问题。

这是一个可能的答案,可能只是一个理论,但我会解释原因。

Django无法加载与SQLite数据库上不是自动索引的主键的关系。

我遇到了这个问题,因为我们采用的测试数据库策略是使用SQLite数据库而不是像Postgres数据库那样的生产。我一整天都在纠正同样的错误。当我切换到Postgres用于测试数据库时,它最终不是问题。这里可能存在更大的问题。希望其他人可以提供更明确的答案。

我使用的是相同版本的Django和Python 2.7

如果可能,您可以尝试将数据移动到Postgres等效项并加载它。如果确实有效,那就意味着你的数据没有错,而且SQLite和Django的关系也存在问题。