Dados de despejo do Django

Resumo : neste tutorial, você aprenderá como usar o dumpdatacomando 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 dumpdatacomando 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 loaddatacomando.

O dumpdatacomando 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, jsonlou yaml. O seguinte despeja todo o banco de dados em um data.jsonarquivo:

python manage.py dumpdata > data.jsonLinguagem de código:  Python  ( python )

Se você abrir o data.jsonarquivo, 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, departmente compensations) do Employeemodelo.

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_formatLinguagem de código:  Python  ( python )

Podem file_formatser json, jsonl, xmle yaml.

Por exemplo, o comando a seguir exporta todo o banco de dados para um XMLarquivo:

python manage.py dumpdata > data.xml --format xmlLinguagem 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.jsonLinguagem de código:  Python  ( python )

Por exemplo, o comando a seguir exporta as instâncias de modelo do hraplicativo:

python manage.py dumpdata hr > hr.jsonLinguagem 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 > filenameLinguagem de código:  Python  ( python )

Por exemplo, o comando a seguir faz dump de todas as instâncias da tabela Employee no HRaplicativo:

python manage.py dumpdata hr.employee > hr_employee.jsonLinguagem 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 --excludeopção:

python manage.py --exclude app_name.model_name > filenameLinguagem de código:  Python  ( python )

Observe que o comando pode conter diversas --excludeopçõ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.jsonLinguagem 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.jsonLinguagem de código:  Python  ( python )

Resumo

  • Use o dumpdatacomando Django para exportar dados de um ou mais modelos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *