我在一个全新的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没有其他并发安装指向同一个数据库,因为:
sonar.core.id
的值与Sonar服务器返回的值匹配:从DB中获取值:
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的问题跟踪系统充斥着这样的报告,所有报告都以“非错误”解决方案结束。如果我重新打开其中一个问题,我想我会被解雇。
所以我希望我在这里真的错过了什么。