import java.sql.SQLException;
import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.SupportsBlueGreen;
import org.sonar.server.platform.db.migration.def.IntegerColumnDef;
import org.sonar.server.platform.db.migration.def.VarcharColumnDef;
import org.sonar.server.platform.db.migration.sql.CreateIndexBuilder;
import org.sonar.server.platform.db.migration.step.DdlChange;
+/**
+ * The missing unique index can be added when server is up, so
+ * blue/green deployment is supported.
+ * See {@link PurgeDuplicateRulesParameters} for more details.
+ */
+@SupportsBlueGreen
public class AddUniqueIndexOnRulesParameters extends DdlChange {
public AddUniqueIndexOnRulesParameters(Database db) {
import java.sql.SQLException;
import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.SupportsBlueGreen;
import org.sonar.server.platform.db.migration.step.DataChange;
+/**
+ * The migration drops duplicated rows from some rules-related tables.
+ * The root cause of these duplications is not known. It could even
+ * be already fixed. Assuming that the duplications are not created frequently,
+ * nor recently, then executing the migration when server is up
+ * is safe. Blue/green deployment is supported.
+ */
+@SupportsBlueGreen
public class PurgeDuplicateRulesParameters extends DataChange {
private static final String REMOVE_DUPLICATE_RULES_PARAMS_SQL_FOR_GENERIC =
import java.sql.SQLException;
import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.SupportsBlueGreen;
import org.sonar.server.platform.db.migration.step.DataChange;
+/**
+ * The migration drops the orphans from tables ce_*. It can be executed
+ * when server is up, so it supports blue/green deployments.
+ */
+@SupportsBlueGreen
public class PurgeOrphansForCE extends DataChange {
public PurgeOrphansForCE(Database db) {