diff --git a/src/main/java/com/avaje/ebean/dbmigration/model/MColumn.java b/src/main/java/com/avaje/ebean/dbmigration/model/MColumn.java index 286261ca7..ce150d00d 100644 --- a/src/main/java/com/avaje/ebean/dbmigration/model/MColumn.java +++ b/src/main/java/com/avaje/ebean/dbmigration/model/MColumn.java @@ -268,6 +268,10 @@ public class MColumn { return val != null && !val.isEmpty(); } + private boolean hasValue(Boolean val) { + return val != null; + } + private AlterColumn getAlterColumn(String tableName, boolean tableWithHistory) { if (alterColumn == null) { alterColumn = new AlterColumn(); @@ -396,6 +400,9 @@ public class MColumn { if (hasValue(alterColumn.getType())) { type = alterColumn.getType(); } + if (hasValue(alterColumn.isNotnull())) { + notnull = alterColumn.isNotnull(); + } if (hasValue(alterColumn.getDefaultValue())) { defaultValue = alterColumn.getDefaultValue(); } diff --git a/src/test/java/com/avaje/ebean/dbmigration/model/MColumnTest.java b/src/test/java/com/avaje/ebean/dbmigration/model/MColumnTest.java index 7793999c7..0bcdf6e5e 100644 --- a/src/test/java/com/avaje/ebean/dbmigration/model/MColumnTest.java +++ b/src/test/java/com/avaje/ebean/dbmigration/model/MColumnTest.java @@ -58,6 +58,37 @@ public class MColumnTest { assertThat(alterColumn.getDefaultValue()).isNull(); } + @Test + public void diffNull() throws Exception { + + ModelDiff diff = diff(); + + MColumn newCol = basic(); + newCol.setNotnull(false); + + MColumn baseCol = basic(); + baseCol.setNotnull(true); + + baseCol.compare(diff, table, newCol); + + assertChanges(diff); + AlterColumn alterColumn = getAlterColumn(diff); + assertThat(alterColumn.isNotnull()).isEqualTo(false); + } + + @Test + public void applyNotNull_expect_notNull() throws Exception { + + MColumn newCol = basic(); + newCol.setNotnull(true); + + AlterColumn alterColumn = new AlterColumn(); + alterColumn.setNotnull(Boolean.FALSE); + newCol.apply(alterColumn); + + assertThat(newCol.isNotnull()).isFalse(); + } + @Test public void diffCheckAdd() throws Exception {