Liferay7.0导出的LAR文件导入7.4时版本不匹配报错如何解决?
报错原因
- LAR是Liferay官方定义的专属归档导出格式,不同版本的Liferay内置的导入导出Schema版本互不兼容:Liferay 7.0导出的LAR包Schema版本固定为1.0.0,而Liferay 7.4的导入Schema版本已迭代至4.0.0,系统导入前会强制校验Schema版本匹配性,版本不一致就会触发该报错。
- Liferay原生不支持跨两个以上大版本直接导入低版本LAR包,版本校验是内置的保护逻辑,避免低版本废弃字段、不兼容结构导入后引发系统运行异常。
可用解决方法
- 中间版本过渡导入
你可以临时部署Liferay 7.2、7.3两个中间版本的干净实例,先将7.0导出的LAR包导入7.2实例,导出适配7.2版本的LAR包后再导入7.3实例,最后从7.3导出符合7.4要求的4.0.0版本Schema的LAR包,再导入目标7.4环境即可。该方案兼容性最好,不会出现内容异常问题。 - 修改LAR包版本标识
如果你要导入的结构和模板逻辑简单、没有用到7.0独有的废弃特性,可以直接手动修改LAR包的版本参数:解压导出的LAR压缩包,找到根目录下的manifest.xml文件,将其中<schema-version>标签的数值从1.0.0改为4.0.0,重新打包为LAR格式后即可绕过版本校验完成导入。导入完成后需要手动核对所有内容的显示、功能是否正常。 - 手动迁移内容
如果要迁移的结构和模板数量不多,直接在7.4后台手动重建对应结构,将7.0环境的模板代码、配置项逐段复制到新环境对应位置即可。该方案不会有版本兼容隐患,操作复杂度最低。
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

