我可以执行dumpdata
中的Django上只是一个单一的模式,而不是整个应用程序,如果是这样,怎么样?
对于一个应用程序将是:
python manage.py dumpdata myapp
不过,我想一些具体的模型,如“myapp.mymodel”转储。 其原因是,我有一些巨大的,300万条记录加,因为我不希望甩相同的应用程序的数据集。
我可以执行dumpdata
中的Django上只是一个单一的模式,而不是整个应用程序,如果是这样,怎么样?
对于一个应用程序将是:
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
例如倾倒从其中驻留在缺省auth应用在Django group_permission模型数据。
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
在代码: https://gist.github.com/2394883