Resumo : neste tutorial, você aprenderá como usar o dumpdata
comando Django para exportar o banco de dados para arquivos.
Introdução ao comando dumpdata do Django
Às vezes, você deseja mover alguns dados comuns de um banco de dados de teste para o banco de dados de produção.
Para fazer isso, você usa o dumpdata
comando para exportar dados do banco de dados de teste para um arquivo e importá-los para o banco de dados de produção usando o loaddata
comando.
O dumpdata
comando tem muitas opções que permitem:
- Exporte todas as instâncias de modelo de todos os aplicativos (todo o banco de dados) para um arquivo.
- Exporte todas as instâncias de modelo de um aplicativo para um arquivo.
- Exporte algumas instâncias do modelo (algumas tabelas no banco de dados) para um arquivo.
O formato do arquivo de saída pode ser xml
, json
, jsonl
ou yaml
. O seguinte despeja todo o banco de dados em um data.json
arquivo:
python manage.py dumpdata > data.json
Linguagem de código: Python ( python )
Se você abrir o data.json
arquivo, verá muitos dados. Por exemplo, o seguinte mostra a instância do Funcionário:
...
{
"model": "hr.employee",
"pk": 5,
"fields": {
"first_name": "John",
"last_name": "Doe",
"contact": null,
"department": 1,
"compensations": [1, 2]
}
},
...
Linguagem de código: Python ( python )
O modelo de amostra contém as seguintes informações:
- O nome do modelo (
hr.employee
). - O valor da chave primária (
pk
). - Os campos (
first_name
,last_name
,contact
,department
ecompensations
) doEmployee
modelo.
Se quiser exportar todo o banco de dados para outro formato como XML
, você precisa especificar a opção de formato:
python manage.py dumpdata > filename --format file_format
Linguagem de código: Python ( python )
Podem file_format
ser json
, jsonl
, xml
e yaml
.
Por exemplo, o comando a seguir exporta todo o banco de dados para um XML
arquivo:
python manage.py dumpdata > data.xml --format xml
Linguagem de código: Python ( python )
Exportando dados de um aplicativo específico
Para exportar dados de um aplicativo específico, especifique o nome do aplicativo:
python manage.py dumpdata app_name > filename.json
Linguagem de código: Python ( python )
Por exemplo, o comando a seguir exporta as instâncias de modelo do hr
aplicativo:
python manage.py dumpdata hr > hr.json
Linguagem de código: Python ( python )
Exportando dados de um modelo específico
Para despejar os dados de uma tabela específica, especifique o nome do aplicativo e o nome do modelo da seguinte maneira:
python manage.py app_name.model_name > filename
Linguagem de código: Python ( python )
Por exemplo, o comando a seguir faz dump de todas as instâncias da tabela Employee no HR
aplicativo:
python manage.py dumpdata hr.employee > hr_employee.json
Linguagem de código: Python ( python )
Exportando dados excluindo um ou mais modelos
Às vezes, você deseja exportar dados de todos os modelos, exceto um ou mais modelos. Neste caso, você pode usar a --exclude
opção:
python manage.py --exclude app_name.model_name > filename
Linguagem de código: Python ( python )
Observe que o comando pode conter diversas --exclude
opções para que você possa excluir diversos modelos.
Por exemplo, os seguintes dados de exportação de todo o banco de dados, exceto do modelo de contato:
python manage.py --exclude hr.contact > data.json
Linguagem de código: Python ( python )
O comando a seguir exporta dados de todo o banco de dados, exceto dos modelos de contato e departamento:
python manage.py --exclude hr.contact --exclude department > data.json
Linguagem de código: Python ( python )
Resumo
- Use o
dumpdata
comando Django para exportar dados de um ou mais modelos.