Wednesday, 14 October 2015

Dumpdata and loaddata in django.

dumpdata command

  • It is a django management command, which can be use to backup(export) you model instances or whole database

dumpdata for basic database dump

  • Following command will dump whole database in to a db.json file
./manage.py dumpdata > db.json

dumpdata for backup specific app

  • Following command will dump the content in django admin app intoadmin.json file
./manage.py dumpdata admin > admin.json

dumpdata for backup specific table

  • Following command will dump only the content in django admin.logentrytable
./manage.py dumpdata admin.logentry > logentry.json
  • Following command will dump the content in django auth.user table
./manage.py dumpdata auth.user > user.json

dumpdata (--exclude)

  • You can use --exclude option to specify apps/tables which don't need being dumped
  • Following command will dump the whole database with out includingauth.permission table content
./manage.py dumpdata --exclude auth.permission > db.json

dumpdata (--indent)

  • By default, dumpdata will output all data on a single line. It isn’t easy for humans to read
  • You can use the --indent option to pretty-print the output with a number of indentation spaces
./manage.py dumpdata auth.user --indent 2 > user.json
  • Example output of above command is below
Picture

dumpdata (--format)

  • By default, dumpdata will format its output in JSON
  • You can specify the format using --format option
  • Command supports for following formats(serialization formats)
  1. json
  2. xml
  3. yaml
./manage.py dumpdata auth.user --indent 2 --format xml > user.xml
  • Above command output an xml file(user.xml)
Picture

loaddata command

  • This command can be use to load the fixtures(database dumps) into database
./manage.py loaddata user.json
  • This command will add the user.json file content into the database

Restore fresh database

  • When you backup whole database by using dumpdata command, it will backup all the database tables
  • If you use this database dump to load the fresh database(in another django project), it can be causes IntegrityError (If you loaddata in same database it works fine)
  • To fix this problem, make sure to backup the database by excludingcontenttypes and auth.permissions tables
./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
  • Now you can use loaddata command with a fresh database
./manage.py loaddata db.json

13 comments:

  1. E7F34BD3DCAlondra8AB31322E011 October 2024 at 05:08

    82855F76CD
    skype show

    ReplyDelete