Подтвердить что ты не робот

Данные дампа Django для одной модели?

Могу ли я выполнить dumpdata в Django только для одной модели, а не для всего приложения, и если да, то как

Для приложения это будет:

python manage.py dumpdata myapp

Однако я хочу, чтобы какая-то конкретная модель, например "myapp.mymodel", была сброшена. Причина в том, что у меня есть огромные 3 миллиона записей плюс, наборы данных в том же приложении, которые я бы не хотел сбрасывать.

4b9b3361

Ответ 1

Начиная с версии 1.1 и выше команда управления Django dumpdata позволяет вам удалять данные из отдельных таблиц:

./manage.py dumpdata myapp1 myapp2.my_model

Вы также можете отделить несколько приложений и моделей от командной строки. Здесь каноническое определение:

django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]

Ответ 2

Как уже отмечалось, вы не можете сделать это с помощью команды manage.py в Django 1.0. Однако вы можете использовать script для экспорта файла 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()

Ответ 3

Думаю, у вас было решение в вашем вопросе. Вы можете сбросить отдельную модель следующим образом:

./manage.py dumpdata myapp.my_model

Ответ 4

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

./manage.py dumpdata myapp2.my_model myapp2.my_model

Если я сказал только

./manage.py dumpdata myapp2 myapp2.my_model

Меня охватили все модели в myapp2, несмотря на то, что я указал my_model.

Ответ 5

В качестве обходного пути вы можете сделать другое приложение и скопировать модель, но указать ее на существующую таблицу с помощью опции meta db_table. Затем вы можете просто сбросить модели, которые вы скопировали в новое приложение. На существующее приложение не повлияет.

Ответ 6

Возьмите все данные в формате json из модели django.

Синтаксис:

python manage.py dumpdata app_name.model_name

Для example сбрасывать данные из модели group_permission, которые находятся в объявлении по умолчанию в django.

python manage.py dumpdata auth.group_permission

Для вывода взгляните на консоль.

Ответ 7

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

./manage generate_fixtures app.model.MyModel --file=dump/MyModel.json

code at: https://gist.github.com/2394883