如何完全转储Django-CMS的数据

时间:2010-02-24 03:35:09

标签: database django django-cms

我有一个已经在生产环境中运行的Django-CMS实例。我想转储与CMS相关的所有数据(PAGES和PLUGINS),以便我可以将其加载回我的开发环境。

当我python manage.py dumpdata cms时,它会转储大部分数据,但不是全部数据。没有插入插件的内容。当我查看django-cms源代码时,我发现插件组织在与其他模型不同的文件夹中 - 我确信这与dumpdata的行为有关。

有谁知道他们将如何实现我的目标?

感谢您的帮助/解答!

4 个答案:

答案 0 :(得分:18)

Django内置的转储和恢复命令非常适合迁移CMS的内容。

要转储CMS的内容,您需要同时包含cms应用程序以及您在dumpdata命令中使用的每个插件类型,例如:

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

转储您的内容(您只需要应用名称,而不是完整路径,例如cms.plugins.text)。

答案 1 :(得分: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

菲利普

答案 2 :(得分:4)

对于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

答案 3 :(得分:2)

您的dumpdata命令仅转储cms应用的数据,但每个插件(cms.plugins.textcms.plugins.picture等)都是自己的应用,因此需要要添加到命令行。