Команда dumpdata

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

Синтаксис

pythonpython manage.py dumpdata [app_name[.ModelName] ...] [options]

Основные параметры

Команда dumpdata принимает следующие основные параметры:

Пример

Давайте создадим дамп всех данных из приложения myapp в формате JSON с отступами:

pythonpython manage.py dumpdata myapp --format json --indent 2

Результат выполнения кода:

python[
  {
    "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 и сохраним его в файл:

pythonpython manage.py dumpdata myapp.Article --output articles.json

После выполнения команды в файле articles.json будет сохранен JSON-дамп всех записей модели Article:

python[
  {"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:

pythonpython manage.py dumpdata myapp --format yaml --exclude myapp.category

Результат выполнения кода:

python- 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 с использованием естественных ключей:

pythonpython manage.py dumpdata myapp users --natural-foreign --natural-primary

Результат выполнения кода:

python[
  {
    "model": "myapp.article",
    "pk": 1,
    "fields": {
      "title": "article 1",
      "author": ["username1"],
      "status": "published"
    }
  }
]

Смотрите также

  • команда loaddata,
    которая загружает данные из дампа в базу данных
  • команда flush,
    которая очищает все данные из базы данных
  • команда migrate,
    которая применяет миграции к базе данных
  • команда showmigrations,
    которая показывает статус миграций в проекте