comando dumpdata
- É um comando de gerenciamento django, que pode ser usado para fazer backup (exportar) suas instâncias de modelo ou banco de dados inteiro
dumpdata para despejo básico de banco de dados
- O comando a seguir irá despejar todo o banco de dados em um
db.json
arquivo
./manage.py dumpdata > db.json
dumpdata para aplicativo específico de backup
- O comando a seguir irá despejar o conteúdo do
admin
aplicativo django noadmin.json
arquivo
./manage.py dumpdata admin > admin.json
dumpdata para tabela específica de backup
- O comando a seguir irá despejar apenas o conteúdo da
admin.logentry
tabela django
./manage.py dumpdata admin.logentry > logentry.json
- O seguinte comando irá despejar o conteúdo na
auth.user
tabela django
./manage.py dumpdata auth.user > user.json
dumpdata (–exclude)
Você pode usar a opção para especificar aplicativos / tabelas que não precisam ser despejados
--exclude
O comando a seguir irá despejar todo o banco de dados sem incluir o conteúdo da tabela
auth.permission
./manage.py dumpdata --exclude auth.permission > db.json
dumpdata (–indent)
Por padrão,
dumpdata
produzirá todos os dados em uma única linha. Não é fácil para os humanos leremVocê pode usar a opção de imprimir a saída com uma série de espaços de recuo
--indent
./manage.py dumpdata auth.user --indent 2 > user.json
- O exemplo de saída do comando acima está abaixo
dumpdata (–format)
Por padrão, dumpdata formatará sua saída em JSON
Você pode especificar o formato usando a opção –format
Suporte de comando para os seguintes formatos (formatos de serialização)
- json
- xml
- yaml
./manage.py dumpdata auth.user --indent 2 --format xml > user.xml
- O comando acima gera um arquivo xml (user.xml)
comando loaddata
- Este comando pode ser usado para carregar os fixtures (dumps do banco de dados) no banco de dados
./manage.py loaddata user.json
- Este comando irá adicionar o conteúdo do arquivo no banco de dados
user.json
Restaurar banco de dados novo
Quando você faz backup de todo o banco de dados usando o
dumpdata
comando, ele fará backup de todas as tabelas do banco de dadosSe você usar este dump de banco de dados para carregar o banco de dados novo (em outro projeto django), pode haver causas
IntegrityError
(se você estiverloaddata
no mesmo banco de dados, funciona bem)Para corrigir esse problema, certifique-se de fazer backup do banco de dados excluindo as tabelas
contenttypes
eauth.permissions
./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
- Agora você pode usar o
loaddata
comando com um novo banco de dados
./manage.py loaddata db.json