尽管需要进行数据库迁移,但 SonarQube 以 NO_MIGRATION 回复
SonarQube replying with NO_MIGRATION although db migration is required
我们已经使用 Ansible 自动安装了 SonarQube 服务器。作为此过程的一部分,Ansible 轮询 URL sonar/api/server/index
以检查服务器是否正常 - 运行。一旦返回 HTTP 200 并且服务器状态等于 SETUP
...
<server>
<id>20170131094026</id>
<version>5.6.2</version>
<status>SETUP</status>
</server>
...脚本通过向 sonar/api/server/setup
发送 POST
并等待返回 MIGRATION_SUCCEEDED
来触发数据库升级。
直到现在我尝试将 SonarQube 从版本 5.6.2 升级到 5.6.5 时,它一直运行良好。由于某种原因 sonar/api/server/index
现在总是 returns 状态 UP
(即使 GUI 清楚地表明它仍在维护中)并且 POST
到 sonar/api/server/setup
表示数据库是最新的,不需要迁移 (NO_MIGRATION
)。
但是,服务器仍处于维护模式,nexus.log 不断重复同一行:
09:41:05 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:41:39 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:43:13 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:47:28 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
当我手动导航到 sonar/setup
并单击“更新”按钮时,数据库迁移开始... API 中是否有任何更改?我是否调用了错误的 REST 端点?
您正在使用内部网络服务(api/server/index 和 api/server/upgrade)。响应和行为可以在没有任何通知的情况下在版本之间更改。
您应该改用:
- GET api/system/db_migration_status : 获取数据库迁移状态
- POST api/system/migrate_db : 执行迁移
我鼓励您访问 http:///web_api 以查看适用于您使用的 SonarQube 版本的可用 Web 服务的文档。
我们已经使用 Ansible 自动安装了 SonarQube 服务器。作为此过程的一部分,Ansible 轮询 URL sonar/api/server/index
以检查服务器是否正常 - 运行。一旦返回 HTTP 200 并且服务器状态等于 SETUP
...
<server>
<id>20170131094026</id>
<version>5.6.2</version>
<status>SETUP</status>
</server>
...脚本通过向 sonar/api/server/setup
发送 POST
并等待返回 MIGRATION_SUCCEEDED
来触发数据库升级。
直到现在我尝试将 SonarQube 从版本 5.6.2 升级到 5.6.5 时,它一直运行良好。由于某种原因 sonar/api/server/index
现在总是 returns 状态 UP
(即使 GUI 清楚地表明它仍在维护中)并且 POST
到 sonar/api/server/setup
表示数据库是最新的,不需要迁移 (NO_MIGRATION
)。
但是,服务器仍处于维护模式,nexus.log 不断重复同一行:
09:41:05 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:41:39 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:43:13 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
09:47:28 INFO ce[o.s.c.a.WebServerWatcherImpl] Still waiting for WebServer...
当我手动导航到 sonar/setup
并单击“更新”按钮时,数据库迁移开始... API 中是否有任何更改?我是否调用了错误的 REST 端点?
您正在使用内部网络服务(api/server/index 和 api/server/upgrade)。响应和行为可以在没有任何通知的情况下在版本之间更改。
您应该改用:
- GET api/system/db_migration_status : 获取数据库迁移状态
- POST api/system/migrate_db : 执行迁移
我鼓励您访问 http:///web_api 以查看适用于您使用的 SonarQube 版本的可用 Web 服务的文档。