20

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

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

有谁知道他们将如何实现我想要做的事情?

感谢您的帮助/回答!

4

4 回答 4

18

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

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

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

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

于 2011-02-08T23:44:41.787 回答
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

菲利普

于 2010-04-14T11:45:40.867 回答
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

于 2014-06-08T02:25:42.653 回答
2

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

于 2010-02-24T03:43:25.613 回答