Heroku 上的 Django 项目初始数据夹具完整性错误
Django project on Heroku initial data fixture integrityerror
我已经将我的项目部署到 Heroku,目前正在尝试将数据转储从本地 sqlite 数据库加载到 Heroku 数据库。除初始迁移命令外,远程数据库是干净且未受影响的。
我尝试了以下转储组合,但都返回了错误
python manage.py dumpdata --exclude contenttypes --> data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --indent 2 > data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --exclude auth.user --indent 2 > data.json
错误是:
django.db.utils.IntegrityError: Problem installing fixture
'/app/data.json': Could not load wellsurfer.Profile(pk=6): duplicate
key value violates unique constraint "wellsurfer_profile_user_id_key"
DETAIL: Key (user_id)=(1) already exists.
我想 post 此处的 json 文件,但大约有 120,000 行。但如果需要,我可以提供特定部分。该错误清楚地表明密钥存在,但数据库一开始是干净的。显然,我做错了一些非常基本的事情,我希望你能指出正确的方向。我尝试了在 Whosebug 上找到的建议,但没有成功。
我遇到了同样的问题,这对我有用
源码(本地sqlite)
python manage.py dumpdata --natural-foreign --indent 4 > datadump.json
(这将包括所有内容,甚至是授权应用/用户)
目的地(heroku postgres)
python manage.py migrate
python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()
最后,运行 以下命令加载 json 数据:
python manage.py loaddata datadump.json
我已经将我的项目部署到 Heroku,目前正在尝试将数据转储从本地 sqlite 数据库加载到 Heroku 数据库。除初始迁移命令外,远程数据库是干净且未受影响的。 我尝试了以下转储组合,但都返回了错误
python manage.py dumpdata --exclude contenttypes --> data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --indent 2 > data.json
python manage.py dumpdata --exclude auth.permission --exclude contenttypes --exclude auth.user --indent 2 > data.json
错误是:
django.db.utils.IntegrityError: Problem installing fixture '/app/data.json': Could not load wellsurfer.Profile(pk=6): duplicate key value violates unique constraint "wellsurfer_profile_user_id_key" DETAIL: Key (user_id)=(1) already exists.
我想 post 此处的 json 文件,但大约有 120,000 行。但如果需要,我可以提供特定部分。该错误清楚地表明密钥存在,但数据库一开始是干净的。显然,我做错了一些非常基本的事情,我希望你能指出正确的方向。我尝试了在 Whosebug 上找到的建议,但没有成功。
我遇到了同样的问题,这对我有用
源码(本地sqlite)
python manage.py dumpdata --natural-foreign --indent 4 > datadump.json
(这将包括所有内容,甚至是授权应用/用户)
目的地(heroku postgres)
python manage.py migrate
python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()
最后,运行 以下命令加载 json 数据:
python manage.py loaddata datadump.json