Вопрос по django-cms, database, django – Как полностью сбросить данные для Django-CMS

19

У меня есть экземпляр Django-CMS, уже работающий в производственной среде. Я хотел бы сбросить все данные, относящиеся к CMS (PAGES и PLUGINS), чтобы я мог загрузить их обратно в свою среду разработки.

Когда я делаюpython manage.py dumpdata cms он сбрасывает большую часть данных, но не все. Ни один из содержимого для плагинов не сбрасывается. Когда я смотрю на источник django-cms, я вижу, что плагины организованы в другую папку, чем остальные модели - я уверен, что это как-то связано с поведениемdumpdata.

Кто-нибудь знает, как они добьются того, что я пытаюсь сделать?

Спасибо за вашу помощь / ответы!

Если вы используете хуки приложений, вам, вероятно, следует экспортировать данные из них и связанных с ними моделей. Ilian Iliev

Ваш Ответ

4   ответа
12

./manage.py dumpdata >fixtures/all.json

psql
DROP DATABASE [DBNAME];
createdb -T template_postgis [DBNAME]

./manage.py syncdb

psql [DBNAME]

delete from auth_group_permissions; delete from auth_permission; delete from django_admin_log; delete from django_content_type;

Если вы не удалите таблицы выше, вы получите эту ошибку при загрузке приборов:

IntegrityError: duplicate key value violates unique constraint django_content_type_app_label_key

А потом:

./manage.py loaddata fixtures/all.json

Philipp

2

dumpdata Команда только сбрасывает данные дляcms приложение, но каждый плагин (cms.plugins.text, cms.plugins.pictureи т. д.) - это собственное приложение, поэтому его необходимо добавить в командную строку.

Удалось ли повторить эту ошибку? edub
python manage.py dumpdata cms.plugins.text генерирует следующий результат:Error: Unknown application: cms.plugins.text   Несмотря на то, что я указал это как одно из моих установленных приложений в моем main settings.py, и приложение работает правильно. edub
Не могли бы вы показать рабочий пример команды dumpdata, которую вы используете? (Спасибо) edub
Нет, но я не использую Django-CMS. Вы можете попробовать задать вопрос#django на Фриноде. Ignacio Vazquez-Abrams
4

но имена плагинов все изменились. Чтобы получить все стандартные плагины:

./manage.py dumpdata cms djangocms_column djangocms_file djangocms_flash djangocms_googlemap djangocms_inherit djangocms_link djangocms_picture djangocms_style djangocms_teaser djangocms_text_ckeditor djangocms_video > cms_export.json

18

а содержимого CMS.

Чтобы выгрузить содержимое CMS, вам нужно включить как приложение cms, так и каждый из типов плагинов, которые вы используете, в команду dumpdata, что-то вроде:

manage.py dumpdata cms text picture link file [other plugin types] > cms_export.json

для выгрузки содержимого (вам просто нужно имя приложения, а не полный путь, напримерcms.plugins.text).

Возможно, вы захотите использовать --indent = 4, чтобы лучше прочитать вывод и посмотреть, отсутствует ли что-то, или отредактировать его. michel.iamit
Это также будет более важно с CMS 3.0, где плагины были перемещены / переименованы и больше не являются частью приложения CMS. growlf
Кроме того, если вы хотите быть одновременно ленивыми и точными - используйте команду cms для вывода списка используемых плагинов, чтобы определить, какие из них вам действительно нужны, например: python manage.py cms list plugins Это покажет только используемые плагины - и, следовательно, те, которые на самом деле имеют контент, который необходимо экспортировать. growlf

Похожие вопросы