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

edu*_*dub 19 database django django-cms

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

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

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

感谢您的帮助/解答!

Mic*_*nor 18

Django内置的转储和恢复命令可以很好地迁移CMS的内容.

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

manage.py dumpdata cms text picture link file [other plugin types] > cms_export.json
Run Code Online (Sandbox Code Playgroud)

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

  • 此外,如果你想同时保持懒惰和准确 - 使用cms命令列出使用过的插件,以确定你真正需要的插件如下:python manage.py cms list plugins这只会显示正在使用的插件 - 因此实际上有需要导出的内容. (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;
Run Code Online (Sandbox Code Playgroud)

如果你不删除上面的表格,加载灯具时会出现这个错误:

IntegrityError: duplicate key value violates unique constraint django_content_type_app_label_key
Run Code Online (Sandbox Code Playgroud)

然后:

./manage.py loaddata fixtures/all.json
Run Code Online (Sandbox Code Playgroud)

菲利普


Ign*_*ams 2

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