Sonarqube 如何清除声纳中的双剖面

Sonarqube 如何清除声纳中的双剖面,sonarqube,Sonarqube,最近,我两次从不同的sonar服务器恢复了我的质量档案,因为第一个似乎无法一次性工作,我认为第二个会覆盖第一个。但是,他们没有,我在声纳中留下了两个完全相同的剖面,具有相同的ID。我必须进入声纳数据库并手动删除它们,因为声纳不再启动。现在我只剩下3个不同的配置文件中的规则,其中2个不再存在。如何在不干扰仍然有效的配置文件的情况下清除这些参数?首先,您需要从已不存在的配置文件上链接的活动规则中删除参数: DELETE FROM active_rule_parameters WHERE id IN

最近,我两次从不同的sonar服务器恢复了我的质量档案,因为第一个似乎无法一次性工作,我认为第二个会覆盖第一个。但是,他们没有,我在声纳中留下了两个完全相同的剖面,具有相同的ID。我必须进入声纳数据库并手动删除它们,因为声纳不再启动。现在我只剩下3个不同的配置文件中的规则,其中2个不再存在。如何在不干扰仍然有效的配置文件的情况下清除这些参数?

首先,您需要从已不存在的配置文件上链接的活动规则中删除参数:

DELETE FROM active_rule_parameters
WHERE id IN (
  SELECT active_rule_parameters.id
  FROM active_rule_parameters
  WHERE active_rule_id IN (
    SELECT DISTINCT active_rules.id
    FROM active_rules
    WHERE NOT EXISTS(
        SELECT *
        FROM rules_profiles
        WHERE active_rules.profile_id = rules_profiles.id
    )));
然后,您需要删除已不存在的配置文件上链接的活动规则:

DELETE FROM active_rules
WHERE id IN (
  SELECT DISTINCT active_rules.id
  FROM active_rules
  WHERE NOT EXISTS(
      SELECT *
      FROM rules_profiles
      WHERE active_rules.profile_id = rules_profiles.id
  ));

我首先检查当我执行select*而不是delete时,结果是否会是什么,并且没有结果。所以没什么奇怪的,就像我以前试过的那样。下面是我使用过的用例:1->创建一个新的配置文件,2->激活一些规则,3->删除数据库中的配置文件。然后,执行这两个SQL查询已删除孤立的活动规则和活动规则参数。一个问题:您是执行了两个查询还是仅执行了第一个查询?我在select而不是delete上同时运行了这两个查询。更改您的用例,添加两个同名的概要文件,然后删除数据库中的1个概要文件,这两个概要文件都有相同的规则