From 171d1a19f4be4e097c79056d97bc2081d4615891 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Mon, 17 Feb 2020 14:19:19 +1300 Subject: [PATCH] #1937 - When add a new col with @DbComment in Entity,the DbMigration does not generate comment ddl --- .../ddlgeneration/platform/BaseTableDdl.java | 4 ++++ .../ddlgeneration/platform/BaseTableDdlTest.java | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index b7622de18..2bdaab066 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -951,6 +951,10 @@ public class BaseTableDdl implements TableDdl { } platformDdl.alterTableAddColumn(buffer, tableName, column, onHistoryTable, help.getDefaultValue()); + final String comment = column.getComment(); + if (comment != null && !comment.isEmpty()) { + platformDdl.addColumnComment(buffer, tableName, column.getName(), comment); + } if (!onHistoryTable) { help.writeAfter(buffer); diff --git a/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java index b141cd979..20a3dad8b 100644 --- a/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java +++ b/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; public class BaseTableDdlTest { @@ -98,6 +99,21 @@ public class BaseTableDdlTest { assertThat(ddl).contains("comment on column mytab.acol is 'my comment'"); } + @Test + public void alterTableAddColumnWithComment() throws IOException { + BaseTableDdl ddl = new BaseTableDdl(serverConfig, h2ddl); + DdlWrite write = new DdlWrite(); + Column column = new Column(); + column.setName("my_column"); + column.setComment("some comment"); + column.setType("int"); + + ddl.alterTableAddColumn(write.apply(), "my_table", column, false, false); + assertEquals( + "alter table my_table add column my_column int;\n" + + "comment on column my_table.my_column is 'some comment';\n", write.apply().getBuffer()); + } + @Test public void testAddTableComment() throws IOException {