Могу ли я выполнить dumpdata
в Django только одну модель, а не все приложение, и если да, то как?
Для приложения это будет:
python manage.py dumpdata myapp
Однако я хочу, чтобы какая-то конкретная модель, например myapp.mymodel, была выгружена. Причина в том, что у меня есть несколько огромных, 3 миллиона записей плюс наборы данных в том же приложении, которые я не хотел бы сбрасывать.
Ответы:
Начиная с версии 1.1 и выше, команда
dumpdata
управления Django позволяет выгружать данные из отдельных таблиц:Вы также можете разделить несколько приложений и моделей в командной строке. Вот каноническое определение:
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
источник
--indent 4
afterdumpdata
Как уже отмечалось, вы не можете сделать это с помощью команды manage.py в Django 1.0. Однако вы можете использовать сценарий для экспорта файла JSON и загрузить его, используя
loaddata
:from django.core import serializers from myproject.myapp import models data = serializers.serialize("json", models.MyModel.objects.all()) out = open("mymodel.json", "w") out.write(data) out.close()
источник
Переведите все данные в формат json из модели django.
Синтаксис:
python manage.py dumpdata app_name.model_name
Для примера сброса данных из group_permission модели , которые постоянно находятся в Идент по умолчанию приложения в Django.
python manage.py dumpdata auth.group_permission
Для вывода посмотрите на console .
источник
Я думаю, у вас есть решение вашего вопроса. Вы можете сбросить отдельную модель так:
источник
Для успеха мне пришлось сказать это дважды и дважды указать модель, например:
Если бы я только сказал
Меня залили все модели в myapp2, несмотря на то, что я указал my_model.
источник
В качестве обходного пути вы можете создать другое приложение и скопировать модель, но указать ее на существующую таблицу с помощью мета-опции db_table. Затем вы можете просто выгрузить скопированные модели в новое приложение. Ваше существующее приложение не пострадает.
источник
Я создал команду управления для создания прибора для каждой модели. Приспособления можно создать, запустив:
./manage generate_fixtures app.model.MyModel --file=dump/MyModel.json
код по адресу: https://gist.github.com/2394883
источник
Чтобы записать это в конкретный файл:
источник
Если вы хотите сбросить только указанные объекты модели, вы можете использовать --pks дополнительного аргумента для dumpdata команды.
источник