Consider rule bar:B defined by a plugin.
At startup, if rule bar:B defines a deprecated key foo:A and foo:A is a rule in database with id 1234, SonarQube should:
- rename the rule repository foo to bar and rule key A to B in table RULES for id 1234
- update the RULES.RULE index for id 1234 in the same fashion
- (there is no need to update the RULES.RULE_EXTENSION index for id 1234 as the rule key can be replaced by the rule id, see
- (there is no need to rename the key in RULES.ACTIVE_RULE index for id 1234 as the rule key can be removed, it's not used, see
- (there is no need to update index ISSUES.ISSUE as rule is only referenced to by its id, see
Note: this should integrate with the existing process at startup which updates the rule properties if and when they are updated by the plugin