Команда dumpdata
Команда dumpdata применяется для экспорта данных из моделей Django в файл-дамп. Она создает сериализованное представление данных, которое можно использовать для резервного копирования, переноса данных между окружениями или для загрузки в другую базу данных с помощью команды loaddata. Команда поддерживает различные форматы вывода и позволяет гибко настраивать экспортируемые данные с помощью параметров.
Синтаксис
python manage.py dumpdata [app_name[.ModelName] ...] [options]
Основные параметры
Команда dumpdata принимает следующие основные параметры:
-
--format- формат вывода данных (по умолчанию JSON). Доступные форматы: json, xml, yaml. -
--indent- количество пробелов для отступа в выводе (по умолчанию 0). -
--exclude- исключает указанные модели из дампа. -
--output- записывает вывод в указанный файл вместо стандартного потока вывода.
Пример
Давайте создадим дамп всех данных из приложения myapp в формате JSON с отступами:
python manage.py dumpdata myapp --format json --indent 2
Результат выполнения кода:
[
{
"model": "myapp.article",
"pk": 1,
"fields": {
"title": "article 1",
"content": "Content of article 1",
"status": "published"
}
},
{
"model": "myapp.article",
"pk": 2,
"fields": {
"title": "article 2",
"content": "Content of article 2",
"status": "draft"
}
}
]
Пример
Давайте создадим дамп только модели Article из приложения myapp и сохраним его в файл:
python manage.py dumpdata myapp.Article --output articles.json
После выполнения команды в файле articles.json будет сохранен JSON-дамп всех записей модели Article:
[
{"model": "myapp.article", "pk": 1, "fields": {"title": "article 1", "content": "Content 1"}},
{"model": "myapp.article", "pk": 2, "fields": {"title": "article 2", "content": "Content 2"}}
]
Пример
Давайте создадим дамп данных в формате YAML с исключением модели Category:
python manage.py dumpdata myapp --format yaml --exclude myapp.category
Результат выполнения кода:
- fields: {content: Content of article 1, status: published, title: article 1}
model: myapp.article
pk: 1
- fields: {content: Content of article 2, status: draft, title: article 2}
model: myapp.article
pk: 2
Пример
Давайте создадим дамп данных для приложений myapp и users с использованием естественных ключей:
python manage.py dumpdata myapp users --natural-foreign --natural-primary
Результат выполнения кода:
[
{
"model": "myapp.article",
"pk": 1,
"fields": {
"title": "article 1",
"author": ["username1"],
"status": "published"
}
}
]
Смотрите также
-
команда
loaddata,
которая загружает данные из дампа в базу данных -
команда
flush,
которая очищает все данные из базы данных -
команда
migrate,
которая применяет миграции к базе данных -
команда
showmigrations,
которая показывает статус миграций в проекте