diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java index d19fbed5faa..21b2e135d81 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java @@ -60,6 +60,7 @@ public class Upgrade441to450 implements DbUpgrade { @Override public void performDataMigration(Connection conn) { dropInvalidKeyFromStoragePoolTable(conn); + dropDuplicatedForeignKeyFromAsyncJobTable(conn); } @@ -80,9 +81,22 @@ public class Upgrade441to450 implements DbUpgrade { keys.add("id_2"); uniqueKeys.put("storage_pool", keys); - s_logger.debug("Droping id_2 key from storage_pool table"); + s_logger.debug("Dropping id_2 key from storage_pool table"); for (Map.Entry> entry: uniqueKeys.entrySet()) { DbUpgradeUtils.dropKeysIfExist(conn,entry.getKey(), entry.getValue(), false); } } + + private void dropDuplicatedForeignKeyFromAsyncJobTable(Connection conn) { + HashMap> foreignKeys = new HashMap>(); + List keys = new ArrayList(); + + keys.add("fk_async_job_join_map__join_job_id"); + foreignKeys.put("async_job_join_map", keys); + + s_logger.debug("Dropping fk_async_job_join_map__join_job_id key from async_job_join_map table"); + for (Map.Entry> entry: foreignKeys.entrySet()) { + DbUpgradeUtils.dropKeysIfExist(conn,entry.getKey(), entry.getValue(), true); + } + } }