Confluence云实例迁移至服务器实例后PlantUML宏无效问题求助
问题根因
Confluence云实例与服务器实例使用的PlantUML插件不兼容,两者注册的宏名称不同:云侧宏标识为plantumlcloud,服务器侧插件仅识别plantuml宏,因此迁移后页面存储的旧宏标识无法被服务器实例解析,触发无效宏报错。
解决方法
- 手动单页面修复(适用页面数<20的场景)
打开报错页面进入编辑模式,找到标记为无效的plantumlcloud宏块,复制块内所有PlantUML源码,删除无效宏后插入新的plantuml宏,将源码粘贴到新宏的代码输入框中,保存页面即可正常渲染图表。 - 数据库批量替换(适用页面数较多的场景)
操作前必须先完成全量Confluence数据库备份,建议先在测试环境验证操作逻辑
- 停止Confluence服务
- 连接Confluence使用的数据库,执行如下更新语句替换所有页面中的宏标识:
UPDATE BODYCONTENT SET BODY = REPLACE(BODY, '<ac:name>plantumlcloud</ac:name>', '<ac:name>plantuml</ac:name>') WHERE BODY LIKE '%plantumlcloud%'; - 重启Confluence服务,进入后台管理页触发全量内容重新索引即可
- REST API批量修改(适用不允许直接操作生产数据库的场景)
调用Confluence官方REST API遍历空间下所有页面,拉取页面的存储格式内容,匹配替换plantumlcloud宏标识为plantuml后提交更新,无需操作底层数据,风险更低。
验证
操作完成后打开任意之前报错的页面,确认PlantUML图表正常渲染,无无效宏提示即可。
内容的提问来源于stack exchange,提问作者Rex U
相关产品推荐
相关产品推荐

