Django的转储数据的单一模式?
-
12-09-2019 - |
题
我可以在只是一个单一的模型执行的Django 一个dumpdata
,而不是整个应用程序,如果是,如何?
有关的应用程序将是:
python manage.py dumpdata myapp
然而,我要一些具体型号,如“myapp.mymodel”转储。其原因是,我有一些巨大的,300万条记录加分,数据集,我不会喜欢甩相同的应用程序。
解决方案
作为1.1版本和更高,Django的 dumpdata
管理命令可以转储从各个表数据:
./manage.py dumpdata myapp1 myapp2.my_model
您也可以在命令行上分隔多个应用程序和车型。这里的规范定义:
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
其他提示
如所指出的,可以不通过在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()
我觉得你有你的问题解决方案。你可以转储一个单独的模型是这样的:
./manage.py dumpdata myapp.my_model
以从django的模型中的所有数据为JSON格式。
<强>语法:强>
python manage.py dumpdata app_name.model_name
有关的例如强>从group_permission模型倾销数据驻留在缺省auth应用在Django。
python manage.py dumpdata auth.group_permission
有关输出采取一看的控制台强>
有关的成功,我说了两遍,并指定型号的两倍,如:
./manage.py dumpdata myapp2.my_model myapp2.my_model
如果我只说
./manage.py dumpdata myapp2 myapp2.my_model
我被淹没在myapp2所有的车型,尽管我指定my_model的事实。
作为一种变通方法,你可以让另一个应用程序,并复制模型,但它与db_table元选项指向现有的表。然后,你可以只甩了你复制到新的应用程序模型。您现有的应用程序将不会受到影响。
我已经创建了一个管理命令的生成基于每个模型基础的固定装置。 夹具可以通过运行产生:
./manage generate_fixtures app.model.MyModel --file=dump/MyModel.json
不隶属于 StackOverflow