From df2f2c41d088f7fa8b24b1b544fb597a1f275b20 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 12 Jun 2018 23:21:56 +0200 Subject: [PATCH] SONARCLOUD-75 Mark 3 migrations as blue/green compatible --- .../version/v72/AddUniqueIndexOnRulesParameters.java | 7 +++++++ .../version/v72/PurgeDuplicateRulesParameters.java | 9 +++++++++ .../db/migration/version/v72/PurgeOrphansForCE.java | 6 ++++++ 3 files changed, 22 insertions(+) diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/AddUniqueIndexOnRulesParameters.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/AddUniqueIndexOnRulesParameters.java index cfb48acf321..168ce89dc76 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/AddUniqueIndexOnRulesParameters.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/AddUniqueIndexOnRulesParameters.java @@ -21,11 +21,18 @@ package org.sonar.server.platform.db.migration.version.v72; 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) { diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeDuplicateRulesParameters.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeDuplicateRulesParameters.java index 12f4867df13..139158f9fd7 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeDuplicateRulesParameters.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeDuplicateRulesParameters.java @@ -21,8 +21,17 @@ package org.sonar.server.platform.db.migration.version.v72; 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 = diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeOrphansForCE.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeOrphansForCE.java index 49a0e1bfdc7..fda34a3ca40 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeOrphansForCE.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v72/PurgeOrphansForCE.java @@ -21,8 +21,14 @@ package org.sonar.server.platform.db.migration.version.v72; 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) { -- 2.39.5