Django dump data for a single model?
Can I perform a dumpdata in Django on just a single model, rather than the whole app, and if so, how? For an app it would be: python manage.py dumpdata myapp However, I want some specific model, such as "myapp.mymodel" to be dumped. The reason being, I have some huge, 3 million records plus, datasets in the same app that I would not like dumped.
As of version 1.1 and greater, the Django
dumpdata management command allows you to dump data from individual tables:
./manage.py dumpdata myapp1 myapp2.my_model
You can also separate multiple apps and models on the command line. Here’s the canonical definition:
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
As noted, you can’t do this through a manage.py command in Django 1.0. However you could use a script to export the JSON file, and load it using
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()
Take all data into json format from django model.
python manage.py dumpdata app_name.model_name
For example dumping data from group_permission model which reside in default auth app in django.
python manage.py dumpdata auth.group_permission
For output take a look on console.
I think you had the solution in your question. You can dump an individual model like this:
./manage.py dumpdata myapp.my_model
For success I had to say it twice, and specify the model two times, like:
./manage.py dumpdata myapp2.my_model myapp2.my_model
If I only said
./manage.py dumpdata myapp2 myapp2.my_model
I got flooded with all the models in myapp2, despite the fact that I specified my_model.
As a workaround you could make another app and copy the model but point it to the existing table with the db_table meta option. Then you could just dump the models you copied into the new app. You existing app wouldn’t be affected.
I’ve created a management command the generate a fixture on a per model basis.
Fixtures can be generated by running:
./manage generate_fixtures app.model.MyModel --file=dump/MyModel.json
code at: https://gist.github.com/2394883
To write it on specific file:
python manage.py dumpdata app_label.ModelName app_label.ModelName2 > fixtures/specic.json
- Database Administration Tutorials
- Programming Tutorials & IT News
- Linux & DevOps World
- Entertainment & General News
- Games & eSport