如何在 SonarQube 服务器之间复制规则?

How do you replicate rules between SonarQube servers?

我们目前有两个 SonarQube 服务器 (v4.5.1) 运行 在两个单独的 Windows 2012 服务器上,每个服务器都有自己的 MS SQL 数据库服务器。一个是我们的开发服务器,另一个是我们的生产服务器。我们的想法是,我们首先在开发服务器上测试所有规则更改,一旦我们对它们的正确性感到满意,我们就将它们移植到生产服务器。

当我们第一次设置两台服务器时,我们只是简单地备份了开发服务器数据库并将其恢复到生产服务器上。此时两个系统已同步。

我们最近对开发规则集进行了一些修改,但是当我们尝试使用相同的方法将这些规则移至生产服务器时,它并没有奏效。

生产箱似乎还记得以前的规则集。之前的规则好像有缓存,不知道怎么清除。

在使用新数据库重新启动 SonarQube 之前,我们删除了临时文件夹,因为它似乎保留了缓存的 H2 数据库,但这并没有解决问题。我们还尝试启动它并使用 /setup url 但这似乎也不起作用。

有没有办法在恢复数据库之前完全重置 SonarQube 服务器,使其不知道以前的规则集?

或者是否有更好的方法在两个服务器之间导出和重新导入整个规则集?

我们查看了导出规则配置文件,但这似乎没有包含规则的全部细节。

谢谢 皮特

目前,由于 SONAR-5366,无法在 2 个服务器之间完全同步规则和质量配置文件。您可以观看并为这张票投票。

关于您似乎拥有的缓存,这可能是位于 <install_dir>/data/es 文件夹中的 E/S 索引。您可以做的是:

  • 停止你的服务器
  • 完全删除 <install_dir>/data 文件夹
  • 重新启动服务器:您的规则应该与数据库同步