Команда Django dumpdata в Python — примеры использования

Иногда вам нужно перенести некоторые общие текстовые данные в производственную базу.

Содержание

Что такое команда Django dumpdata

Команда Django dumpdata используется для экспорта данных из тестовой базы данных в файл Python и импортирует их в производственную базу данных с помощью команды loaddata.

Команда dumpdata имеет множество опций, которые позволяют:

  • Экспортировать все экземпляры моделей всех приложений (всю базу данных) в файл.
  • Экспортировать все экземпляры модели приложения в файл.
  • Экспортируйте некоторые экземпляры модели(некоторые таблицы в базе данных) в файл.

Формат выходного файла может быть xml, json, jsonl или yaml. Следующий код выгружает всю базу данных в файл data.json:

python manage.py dumpdata > data.json

Если вы откроете файл data.json, вы увидите много данных. Например, ниже показан экземпляр Employee:

...
{
    "model": "hr.employee",
    "pk": 5,
    "fields": {
      "first_name": "John",
      "last_name": "Doe",
      "contact": null,
      "department": 1,
      "compensations": [1, 2]
    }
  },
...

Образец модели содержит следующую информацию:

  • Название модели (hr.employee).
  • Значение первичного ключа(pk).
  • Поля(имя, фамилия, контакт, отдел и компенсация) модели «Employee».

Если вы хотите экспортировать всю базу данных в другой формат, например XML, вам необходимо указать параметр формата:

python manage.py dumpdata > filename --format file_format

File_format может иметь значения json, jsonl, xml и yaml.

Например, следующая команда экспортирует всю базу данных в XML-файл:

python manage.py dumpdata > data.xml --format xml

Экспорт данных из определенного приложения

Чтобы экспортировать данные определенного приложения, укажите имя приложения:

python manage.py dumpdata app_name > filename.json

Например, следующая команда экспортирует экземпляры модели приложения hr:

python manage.py dumpdata hr > hr.json

Экспорт данных из определенной модели

Чтобы выгрузить данные определенной таблицы, укажите имя приложения и имя модели следующим образом:

python manage.py app_name.model_name > filename

Например, следующая команда выводит все экземпляры таблицы Employee в приложении HR:

python manage.py dumpdata hr.employee > hr_employee.json

Экспорт данных путем исключения одной или нескольких моделей

Иногда вам нужно экспортировать данные из всех моделей, кроме одной или нескольких. В этом случае вы можете использовать опцию —exclude:

python manage.py --exclude app_name.model_name > filename

Обратите внимание, что команда может содержать несколько опций —exclude, что позволяет исключить несколько моделей.

Например, следующий экспорт данных из всей базы данных, за исключением модели контактов:

python manage.py --exclude hr.contact > data.json

Следующая команда экспортирует данные из всей базы данных, за исключением моделей контактов и отделов:

python manage.py --exclude hr.contact --exclude department > data.json
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *