Как полностью сбрасывать данные для Django-CMS
У меня есть экземпляр Django-CMS, уже запущенный в рабочей среде. Я хотел бы сбросить все данные, связанные с CMS (PAGES и PLUGINS), чтобы я мог загрузить его обратно в свою среду разработки.
Когда я делаю python manage.py dumpdata cms
, он выгружает большую часть данных, но не все. Ни один контент для плагинов не сбрасывается. Когда я смотрю на источник django-cms, я вижу, что плагины организованы в другой папке, чем остальные модели. Я уверен, что это имеет какое-то отношение к поведению dumpdata
.
Кто-нибудь знает, как они достигнут того, что я пытаюсь сделать?
Спасибо за вашу помощь/ответы!
Ответы
Ответ 1
Django, созданный в командах дампа и восстановления, хорошо работает для переноса содержимого CMS.
Чтобы сбросить содержимое CMS, вам нужно включить как приложение cms, так и каждый из типов плагинов, которые вы используете в команде dumpdata, так что:
manage.py dumpdata cms text picture link file [other plugin types] > cms_export.json
чтобы выгрузить ваш контент (вам просто нужно имя приложения, а не полный путь, например cms.plugins.text
).
Ответ 2
Здесь обновляется процедура, которую я использую:
./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
Ответ 3
Для DjangoCMS 3.0 синтаксис одинаков, но имена плагинов все изменились. Чтобы получить все стандартные плагины:
./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
Ответ 4
Ваша команда dumpdata
удаляет данные для приложения cms
, но каждый плагин (cms.plugins.text
, cms.plugins.picture
и т.д.) является собственным приложением, поэтому его необходимо добавить в командную строку.