Данные дампа Django для одной модели?
выполнить dumpdata in Джанго только на одной модели, а не все приложение, и если да, то как?
для приложения это будет выглядеть так:
python manage.py dumpdata myapp
однако, я хочу некоторую конкретную модель, такую как "myapp.mymodel " будет сброшен. Причина в том, что у меня есть некоторые огромные, 3 миллиона записей плюс, наборы данных в том же приложении, которое я не хотел бы сбрасывать.
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
Comments