迁移Magnolia项目后,能否从light-modules恢复未导出页面?
能否从light-modules恢复Magnolia页面内容?
首先直接给答案:仅靠你复制的light-modules文件夹,没办法直接恢复你创建的页面内容,不过先别着急,我给你拆解下原因和可能的补救办法:
为什么light-modules里没有页面内容?
你手里的light-modules下的三个文件夹,各自的作用是配置层面的,不存储实际的页面数据:
dialogs:存放的是你编辑页面/组件时使用的表单配置(比如输入框、下拉选的定义),不是你输入的内容templates:是页面和组件的渲染模板,决定内容怎么展示,本身不包含你创建的页面文字、图片这些内容webresources:只是静态资源(CSS、JS、图片文件等),和页面编辑的内容完全无关
而Magnolia里的页面内容,实际是存在它的JCR存储库(或者关联的数据库)里的,这部分数据并没有在light-modules里。
有没有补救办法?
如果符合以下情况,你还是能找回页面的:
- 原电脑的Magnolia实例还能访问:赶紧打开原实例的Pages应用,选中你创建的页面,右键选择「Export」,把页面导出成XML/JSON文件,然后在新电脑的Magnolia实例里用「Import」功能导入这个文件,页面内容就能恢复了
- 有原实例的备份:如果你之前给原Magnolia实例做过repository备份(或者数据库备份),可以把备份恢复到新电脑的实例中,这样包括页面在内的所有数据都会回来
- 另外,把你的
light-modules导入新实例后,你之前用的模板、对话框都会正常可用,只是页面内容需要从上面两个来源恢复,没法凭空生成
给新手的小提醒
以后迁移Magnolia项目时,记得要同时做两件事:
- 复制
light-modules文件夹(这部分你已经做了) - 导出页面内容或者做好整个实例的备份,避免再遇到类似问题
内容的提问来源于stack exchange,提问作者rainxart
相关产品推荐
相关产品推荐

