通过SQL更新liferay页面的友好名称

时间:2016-08-24 13:51:12

标签: sql liferay liferay-6

有没有办法通过SQL脚本更新Liferay网站页面的友好名称?

我们通常通过管理员用户在控制面板中执行此操作。

2 个答案:

答案 0 :(得分:3)

虽然@ steven35的回答可能会起到作用,但是你已经打了一个小小的烦恼。在不同的级别上,如果您在控制面板上或通过API执行此操作,您就可以正确地执行此操作,并且您不应该考虑写入Liferay的方式& #39;数据库。它可能目前正在工作,但它也可能以不可预见的方式失败 - 有时更新后很久。

已经有足够的样本来实现这一目标。如果您在Liferay运行时更改数据,则不会更新缓存。如果这些值也在搜索索引中编入索引,则它们不会在那里更新,随后的随机使用可能无法找到正确的页面,而无需重新编制索引。相同的值可能存储在其他地方 - 或翻译。许多条件都可能失败 - 而且总有一种情况比你期望和满足的条件更多。那种情况可能会打破你的脖子。

当然,页面的友好名称可能不会落入最复杂的这些案例中,但是不要养成写入Liferay数据库的习惯。或者,如果你这样做,不要抱怨未来的升级失败或需要额外的工作,因为数据库包含API没有预料到的值。问题是,在下一次升级期间(如果你在 - 比如说 - 一年),你很久就会忘记你手动更改了数据库中的数据,并在升级过程中将Liferay归咎于问题。

更改数据完全 UI和API的用途。

答案 1 :(得分:0)

友好的网址存储在Liferay数据库的LayoutFriendlyURL.friendlyURL中,因此以下查询应该有效

UPDATE "yourdatabase"."LayoutFriendlyURL" SET "friendlyURL"="/newurl" WHERE "layoutFriendlyURLId"=12345;

您还需要相应地更新布局表以匹配新的友好网址。