Artifactory从7.19.4升级至7.77.5后数据库迁移失败求助
问题背景
已执行操作步骤
- 停止Artifactory
- 停止MySQL
- 将Ubuntu 14.04升级至16.07
- 将mysql-server升级至5.7
- 下载7.75.5.tar.gz文件并放入
/opt/jfrog/artifactory - 解压7.77.5.tar.gz
- 删除
/opt/jfrog/artifactory/app - 执行命令:
cp -r /opt/jfrog/artifactory/7.77.5/app/* /opt/jfrog/artifactory/app - 启动mysql-server
- 启动Artifactory
报错信息
查看console.log时发现数据库错误:
"Could not initialize database: org.flyawaydb.core.api.FlywayException: Detected failed migration to version 7.44 (Add Access Permission v2 ref"
排查与解决操作
1. 检查Flyway迁移状态表
- 登录MySQL,查询Artifactory数据库的
flyway_schema_history表:
重点看SELECT * FROM flyway_schema_history WHERE version = '7.44';success字段是否为0(标记迁移失败),同时查看error_message字段获取具体失败原因。
2. 修复迁移状态标记(谨慎操作)
如果确认7.44版本的数据库变更已实际完成,仅Flyway标记失败:
- 先停止Artifactory:
systemctl stop artifactory - 登录MySQL执行更新:
注意:若迁移未实际完成,此操作会导致数据不一致,务必先确认变更状态。UPDATE flyway_schema_history SET success = 1 WHERE version = '7.44';
3. 验证数据库权限与连接配置
- 检查Artifactory数据库账号权限:
确保账号拥有SHOW GRANTS FOR 'artifactory_user'@'localhost';ALTER、CREATE、INSERT等必要权限。 - 核对Artifactory配置文件(
/opt/jfrog/artifactory/var/etc/system.yaml或db.properties)中的数据库连接信息,确认地址、端口、用户名、密码无误。
4. 修正版本不一致问题
你下载的是7.75.5安装包,但解压的是7.77.5包,版本不匹配可能引发迁移逻辑混乱:
- 重新下载与解压版本一致的安装包,替换
/opt/jfrog/artifactory/app目录后,重启Artifactory。
5. 手动执行迁移脚本(可选)
若上述操作无效,可尝试手动执行迁移:
- 停止Artifactory服务
- 从Artifactory安装包的
app/WEB-INF/db/migration目录找到7.44版本的迁移SQL脚本,手动在MySQL中执行 - 执行完成后启动Artifactory
内容的提问来源于stack exchange,提问作者darthVikes
相关产品推荐
相关产品推荐

