diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 8d606abfa0..be02f18e7d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -723,7 +723,7 @@ public void generate(DdlWrite writer, AlterColumn alterColumn) { dropCheckConstraint(writer, alterColumn, alterColumn.getCheckConstraintName()); } - if (hasValue(alterColumn.getType()) + if (typeChange(alterColumn) || hasValue(alterColumn.getDefaultValue()) || alterColumn.isNotnull() != null) { alterColumn(writer, alterColumn); @@ -735,6 +735,18 @@ public void generate(DdlWrite writer, AlterColumn alterColumn) { } } + private boolean typeChange(AlterColumn alterColumn) { + if (!hasValue(alterColumn.getType())) { + return false; + } + // check, if we have really a type change for that platform + // When specifying @Column("db2;clob(64K)") this would not alter + // other platforms from "String" to "String" for example + String currentType = platformDdl.convert(alterColumn.getCurrentType()); + String type = platformDdl.convert(alterColumn.getType()); + return !type.equals(currentType); + } + private void alterColumnComment(DdlWrite writer, AlterColumn alterColumn) { platformDdl.addColumnComment(writer.applyPostAlter(), alterColumn.getTableName(), alterColumn.getColumnName(), alterColumn.getComment()); }