Django `Loaddata` And `Dumpdata` Examples
Many times we need to load data into django database from other environment. Most raw method is to do database export and import however you need to have required database skillset to do this operation. Also, while doing this database export and import, you might run into DBA related issues. You need to know how to manage database at some good extend, however if you are using django, you have very nice utilities `loaddata` and `dumpdata`. These are django management command, which can be use to backup(export) you model instances or whole database.
## loaddata
This command has following options
```bash
python3 manage.py dumpdata [app_label].[ModelName] --format [json][xml] --exclude auth.permission --indent 4
```
If no application name is provided, all installed applications will be dumped.
#### Take backup of whole database
```bash
python3 manage.py dumpdata > db.json
```
#### Take backup of specific Application
```bash
python3 manage.py dumpdata blog > blog-db.json
```
#### Take backup of specific table / model from specific application
```bash
python3 manage.py dumpdata blog.posts > blog-posts-db.json
```
If you want to dump data in different format, you can do so by passing required parameter
```bash
python3 manage.py dumpdata --format xml > db.xml
```
If you want to avoid integrrity errors, dumpdata by exlcuding following
```bash
python3 manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
```
To make it human readable
```bash
python3 manage.py dumpdata --indent 4 > db.json
```
## loaddata
The output of dumpdata can be used as input for loaddata.
```bash
python3 manage.py loaddata db.json
```
If you have exported only specific table and now you want to load specific table, you can do some by running same command. It will load only table for which data is present in the file. All other tables remains as is.
```bash
python3 manage.py loaddata blog-posts-db.json
```
This post is written by Pravin
Share it :