首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django: loaddata不工作

Django: loaddata不工作
EN

Stack Overflow用户
提问于 2014-02-09 10:41:40
回答 3查看 13.1K关注 0票数 8

我生成了一个fixture:

代码语言:javascript
复制
python manage.py dumpdata --all > ./mydump.json

我清空了我所有的数据库,使用:

代码语言:javascript
复制
python manage.py sqlflush | psql mydatabase -U mydbuser

但是当我尝试使用loaddata时:

代码语言:javascript
复制
python manage.py loaddata ./mydump.json

我收到这个错误:

代码语言:javascript
复制
IntegrityError: Could not load tastypie.ApiKey(pk=1): duplicate key 
value violates unique constraint "tastypie_apikey_user_id_key" 
DETAIL:  Key (user_id)=(2) already exists.

我在生产上遇到了这个问题,我已经没有想法了。有人也有类似的问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-04 12:12:08

Jeff Sheffield的解决方案是正确的,但是现在我发现像django-dbbackup这样的解决方案是迄今为止对任何数据库都是最通用和最简单的方法。

代码语言:javascript
复制
python manage.py dbbackup
票数 3
EN

Stack Overflow用户

发布于 2020-02-29 04:50:35

使用注释掉的所有@reciever运行loaddata,因为它们将在loaddata加载数据时触发。如果@reciever%s创建其他对象作为副作用,它将导致冲突。

票数 9
EN

Stack Overflow用户

发布于 2014-02-10 14:51:20

unix First:我相信你的unix管道写错了。

代码语言:javascript
复制
# 1: Dump your json
$ python manage.py dumpdata --all > ./mydump.json

# 2: dump your schema
$ python manage.py sqlflush > schema.sql

# 3: launch psql
# this is how I launch psql ( seems to be more portable between rhel/ubuntu )
# you might use a bit different technique, and that is ok.

django Edited:(非常重要)确保您的服务器上没有任何活动的连接。然后:

代码语言:javascript
复制
$ sudo -u myuser psql mydatabase

# 4: read in schema
mydatabase=# \i schema.sql
mydatabase=# ctrl-d

# 5: load back in your fixture. 
$ python manage.py loaddata ./mydump.json

Second:如果您的管道正常,则为。有可能是这样。根据您的模式/数据,您可能需要使用自然键。

代码语言:javascript
复制
# 1: Dump your json using ( -n ) natural keys.
$ python manage.py dumpdata -n --all > ./mydump.json

# followed by steps 2-5 above.
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21654559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档