Команда Django dumpdata в Python — примеры использования
Иногда вам нужно перенести некоторые общие текстовые данные в производственную базу.
- Что такое команда Django dumpdata
- Экспорт данных из определенного приложения
- Экспорт данных из определенной модели
- Экспорт данных путем исключения одной или нескольких моделей
Что такое команда 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