nat*_*ood 130 django django-models loaddata dumpdata
我可以dumpdata在一个模型上执行一个Django,而不是整个应用程序,如果是这样,怎么样?
对于一个应用程序,它将是:
python manage.py dumpdata myapp
Run Code Online (Sandbox Code Playgroud)
但是,我想要一些特定的模型,例如"myapp.mymodel"被转储.原因是,我有一些巨大的,300万条记录,数据集在同一个应用程序中,我不喜欢转储.
sim*_*rsh 222
从版本1.1及更高版本开始,Django dumpdata管理命令允许您从各个表转储数据:
./manage.py dumpdata myapp1 myapp2.my_model
Run Code Online (Sandbox Code Playgroud)
您还可以在命令行上分隔多个应用程序和模型.这是规范的定义:
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
Run Code Online (Sandbox Code Playgroud)
dar*_*dar 97
如上所述,您无法通过Django 1.0中的manage.py命令执行此操作.但是,您可以使用脚本导出JSON文件,并使用loaddata以下命令加载它:
from django.core import serializers
from myproject.myapp import models
data = serializers.serialize("json", models.MyModel.objects.all())
out = open("mymodel.json", "w")
out.write(data)
out.close()
Run Code Online (Sandbox Code Playgroud)
从django模型将所有数据转换为json格式.
句法:
python manage.py dumpdata app_name.model_name
Run Code Online (Sandbox Code Playgroud)
对于例如倾倒从其中驻留在缺省auth应用在Django group_permission模型数据.
python manage.py dumpdata auth.group_permission
Run Code Online (Sandbox Code Playgroud)
有关输出,请查看控制台.
小智 7
特定文件的特定模型:
python manage.py dumpdata app_label.ModelName > specific_file.json
Run Code Online (Sandbox Code Playgroud)
并将其加载到另一个应用程序:首先将文件移动或复制到要处理它的应用程序,然后:
python manage.py loaddata specific_file.json
Run Code Online (Sandbox Code Playgroud)
我认为你在问题中有解决方案.你可以像这样转储一个单独的模型:
./manage.py dumpdata myapp.my_model
Run Code Online (Sandbox Code Playgroud)
为了成功,我不得不说两次,并两次指定模型,例如:
./manage.py dumpdata myapp2.my_model myapp2.my_model
Run Code Online (Sandbox Code Playgroud)
如果我只说
./manage.py dumpdata myapp2 myapp2.my_model
Run Code Online (Sandbox Code Playgroud)
尽管我指定了 my_model,但我还是被 myapp2 中的所有模型淹没了。
| 归档时间: |
|
| 查看次数: |
75047 次 |
| 最近记录: |