2015-12-18 58 views
3

我试图自动安装sonarqube。 我遇到的一个(小)问题是在第一次访问期间安装后,因为sonarqube正在初始化数据库模式,我们遇到超时。 我想知道是否有一个脚本/命令来初始化数据库(创建表和所有)从bash? 我一直在互联网上挖掘,找不到答案。 谢谢!初始化SonarQube数据库的命令行?

回答

3

我想完成Seb和Jeroen的答案。 架构实际上是由SonarQube在启动过程中以编程方式创建的。此步骤不能在脚本中独立执行。只需启动服务器。我建议调用Web服务GET http:/// api/system/status(请参阅http://nemo.sonarqube.org/api_documentation/api/system/status文档)以了解数据库何时完全初始化,而不是解析日志。

安装新版本时的数据库升级也可以通过Web服务POST http:/// api/system/migrate_db(请参阅http://nemo.sonarqube.org/api_documentation/api/system/migrate_db)触发。

+0

调用状态WebService确实是一个更清洁的解决方案。但是请小心,在SQ启动后不要开始轮询,或者准备好处理一些“连接被拒绝”错误。 Tomcat必须启动并能够处理请求,否则连接将不会成功。另外,Tomcat可能会持有第一个请求,直到SQ本身已经启动并且能够回复。如果是这样,第一个请求将花费更长的时间来回复。 –

+0

所以解决办法是启动服务,等待30秒,然后做一个长的HTTP GET调用状态来初始化数据库? – baywet

0

您可以在启动过程中构建等待循环和/或分析SonarQube日志文件。

2

数据库初始化内置SonarQube,不能独立运行SonarQube。

正如@jeroen所建议的,您的确可以分析sonar.log文件并等待web[o.s.s.a.TomcatAccessLog] Web server is started行。