1

我在一个全新的 PostgreSQL 9.2 数据库上安装了 Sonar 3.5.1。服务器似乎运行良好,但 sonar-runner (v2.2) 失败并出现以下错误:

Caused by: org.sonar.core.persistence.BadDatabaseVersion: The current batch process and the configured remote server do not share the same DB configuration.
    - Batch side: jdbc:postgresql://10.1.0.210/sonar (postgres / *****)
    - Server side: check the configuration at http://sonar.kopitoto/system

我非常有信心没有其他同时安装的 Sonar 指向同一个数据库,因为:

  • 这是该组织中的第一个声纳装置,有史以来
  • DB 中的值sonar.core.id与 Sonar 服务器返回的值相匹配:

从数据库中获取值:

sonar=# SELECT text_value FROM properties WHERE prop_key = 'sonar.core.id';
   text_value   
----------------
 20130525192736
(1 row)

从服务器获取值:

$ curl http://sonar.kopitoto/api/server
<?xml version="1.0" encoding="UTF-8"?>
<server>
  <id>20130525192736</id>
  <version>3.5.1</version>
  <status>UP</status>
</server>

Sonar-runner 的属性:

sonar.host.url: http://sonar.kopitoto
sonar.jdbc.driverClassName: org.postgresql.Driver
sonar.jdbc.password: *****
sonar.jdbc.schema: public
sonar.jdbc.url: jdbc:postgresql://10.1.0.210/sonar
sonar.jdbc.username: postgres

当然,密码不是五颗星,但我查了两遍。如果我稍微改变一下,跑步者会因身份验证错误而提前失败。因此排除了密码不匹配的情况。

服务器的sonar.properties

sonar.jdbc.username:                       postgres
sonar.jdbc.password:                       *****
sonar.jdbc.url:                            jdbc:postgresql://10.1.0.210/sonar
sonar.jdbc.driverClassName:                org.postgresql.Driver
sonar.jdbc.schema:                         public

同样,上面的密码不是五颗星,但我很确定它是正确的。服务器日志没有说明错误,并显示了当我停止事物、删除数据库、创建一个空数据库,然后再次启动 Sonar 服务器时数据库模式是如何初始化的。

我错过了什么吗?

在这一点上,我认为这是 Sonar 中的一个错误(可能在 sonar-runner 中)。不幸的是,Sonar 的问题跟踪系统充斥着这样的报告,所有这些报告都以“不是错误”的解决方案关闭。我想如果我重新打开其中一个问题,我也会被同样解雇。

所以我希望我在这里真的错过了一些东西。

4

0 回答 0