Rundeck从3.3.8升级至4.10后无法访问门户,请求技术支持
Rundeck跨版本升级失败修复方案
问题背景
从Rundeck 3.3.8直接升级到4.10版本后,服务进程虽运行但门户无法访问,日志显示数据库迁移失败:
ERROR boot.SpringApplication [main] - Application run failed liquibase.exception.LiquibaseException: liquibase.exception.MigrationFailedException: Migration failed for change set core/ConstraintsIndexesKeys.groovy::3.4.0-56::rundeckuser (generated): Reason: liquibase.exception.DatabaseException: (conn=6) Can't write; duplicate key in table '#sql-b34_6' [Failed SQL: (1022) ALTER TABLE rundeck.scheduled_execution_filter ADD CONSTRAINT FK22545y15qs4iqod1ljyqsm1fi FOREIGN KEY (user_id) REFERENCES rundeck.rduser (id)]
核心原因是跨多个大版本直接升级,数据库迁移脚本依赖递进式执行逻辑,跳版本导致中间约束创建步骤冲突。
最佳处理步骤
- 停止Rundeck服务:
systemctl stop rundeckd - 回退到原稳定版本3.3.8:
yum downgrade rundeck-3.3.8.20210111-1.noarch - 启动服务并验证门户可正常访问:
systemctl start rundeckd - 按递进式路径升级到4.10版本,例如:
3.3.8 → 3.4.x → 3.5.x → 4.0.x → 4.10.x
每完成一次升级,需确认服务启动正常、门户可访问,确保数据库迁移完全执行后,再进行下一个版本的升级 - 所有升级操作前,务必备份数据库,避免数据丢失
内容的提问来源于stack exchange,提问作者Holdom
相关产品推荐
相关产品推荐

