Liferay 从 7.1.3-ga4 t0 7.2.1-ga2 升级时出错

Posted

技术标签:

【中文标题】Liferay 从 7.1.3-ga4 t0 7.2.1-ga2 升级时出错【英文标题】:Error with Liferay upgrade from 7.1.3-ga4 t0 7.2.1-ga2 【发布时间】:2021-11-11 20:42:46 【问题描述】:

我们目前正在使用 liferay-ce-portal-7.1.3-ga4,我们希望将其升级到 liferay-ce-portal-7.2.1-ga2,为此我们正在按照此处@987654321 所述进行流程@,但 db_upgrade 脚本日志向我们显示以下内容:

ERROR [main][LPKGDeployerRegistrar:230] Unable to track installed app Liferay CE Foundation - Liferay CE Portal Portlet Bridge - Impl with Marketplace
com.liferay.marketplace.exception.NoSuchModuleException: No Module exists with the primary key 85626
        at com.liferay.marketplace.service.persistence.impl.ModulePersistenceImpl.remove(ModulePersistenceImpl.java:3638)
        at com.liferay.marketplace.service.persistence.impl.ModulePersistenceImpl.remove(ModulePersistenceImpl.java:3614)
        at com.liferay.marketplace.service.base.ModuleLocalServiceBaseImpl.deleteModule(ModuleLocalServiceBaseImpl.java:109)
        at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:50)
        at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:69)
        at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
        at com.liferay.portal.kernel.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:64)
        at com.liferay.portal.spring.aop.AopMethodInvocationImpl.proceed(AopMethodInvocationImpl.java:57)
        at com.liferay.portal.spring.aop.AopInvocationHandler.invoke(AopInvocationHandler.java:49)
        at com.sun.proxy.$Proxy406.deleteModule(Unknown Source)
        at com.liferay.marketplace.internal.lpkg.deployer.LPKGDeployerRegistrar._doRegister(LPKGDeployerRegistrar.java:212)
        at com.liferay.marketplace.internal.lpkg.deployer.LPKGDeployerRegistrar._register(LPKGDeployerRegistrar.java:227)
        at com.liferay.marketplace.internal.lpkg.deployer.LPKGDeployerRegistrar.activate(LPKGDeployerRegistrar.java:92)
.
.
.
.
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
        at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469)
        at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:487)
        at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:1004)
        at com.liferay.registry.internal.RegistryImpl.registerService(RegistryImpl.java:374)
        at com.liferay.portal.tools.DBUpgrader._registerModuleServiceLifecycle(DBUpgrader.java:436)
        at com.liferay.portal.tools.DBUpgrader.main(DBUpgrader.java:117)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:55)

这个异常在不同的应用程序中重复出现,但是这个过程结束了,无论如何当我们想要启动新的 liferay 实例时它失败了。

由于某些应用程序出现错误,我决定尝试从市场上更新应用程序,但只有 2 个应用程序需要更新,而 Liferay CE 基金会的这些应用程序没有,如果您在此处看到 https://web.liferay.com/marketplace/-/mp/application/71924489 它会出现这个应用程序不再更新,然后我决定尝试通过市场删除它们,但它没有用,在此之后我决定(非常糟糕的主意)从 /osgi/marketplace 文件夹中删除 lpkg 文件,当然Liferay 根本无法使用,升级也无法使用。

进行升级的选项是什么?如何解决升级脚本的问题(我认为这些问题是后来Liferay 7.1无法正常工作的根源)

也许值得一提的是,我们之前使用的是 Liferay 6.2,并且我们之前迁移到了 7.1。

【问题讨论】:

【参考方案1】:

虽然升级到7.2版本并不是真正的解决方案,但总的来说是升级的解决方案。 我们决定迁移到 7.3.7-ga8 版本,在这个版本中,迁移脚本和过程正常工作。值得一提的是,在 Liferay 7.1 中,我们使用 Postgres 9.6 进行迁移,我们在此版本的数据库中运行脚本,然后生成备份以在 Liferay 7.3 所需的版本 11 中恢复它

【讨论】:

以上是关于Liferay 从 7.1.3-ga4 t0 7.2.1-ga2 升级时出错的主要内容,如果未能解决你的问题,请参考以下文章

liferay 7 - 如何从默认的 liferay 徽标更改为公司徽标?

如何从 Liferay 7 取消部署 portlet?

Liferay 7:是不是可以自动从链接站点获取图像到站点地图?

带有 MySQL Server 5.6 的 Liferay 7 未启动

在 Liferay 7 中创建自定义标签库

Liferay 7 - 创建经典主题的子主题