diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java b/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java index 7e02a0e03..a92408496 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java +++ b/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java @@ -656,4 +656,12 @@ public class MTable { return draftTableName + "." + references.substring(lastDot + 1); } + /** + * Clear the indexes on the foreign keys as they are covered by unique constraints. + */ + public void clearForeignKeyIndexes() { + for (MCompoundForeignKey compoundKey : compoundKeys) { + compoundKey.setIndexName(null); + } + } } diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java b/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java index 8d9f64be5..f6a939d1a 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java +++ b/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java @@ -133,6 +133,7 @@ public class ModelBuildPropertyVisitor extends BaseTablePropertyVisitor { // in the middle of rendering the create table DDL MTable intersectionTable = new ModelBuildIntersectionTable(ctx, p).build(); if (p.isO2mJoinTable()) { + intersectionTable.clearForeignKeyIndexes(); Collection cols = intersectionTable.allColumns(); if (cols.size() == 2) { // always the second column that we put the unique constraint on