2015-12-18 59 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行。