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



выполнить dumpdata in Джанго только на одной модели, а не все приложение, и если да, то как?



для приложения это будет выглядеть так:



python manage.py dumpdata myapp


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

660   7  

7 ответов:

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

./manage.py dumpdata myapp1 myapp2.my_model

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

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

Как уже отмечалось, вы не можете сделать это через a 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()

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

./manage.py dumpdata myapp.my_model

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

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

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

./manage.py dumpdata myapp2 myapp2.my_model

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

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

синтаксис:

python manage.py dumpdata app_name.model_name

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

python manage.py dumpdata auth.group_permission

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

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

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

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

код: https://gist.github.com/2394883

Comments

    Ничего не найдено.