#955 - Migration "add column" DDL with check constraint is missing constraint name

This commit is contained in:
rob bygrave
2017-05-21 01:23:55 +12:00
parent fe9500e6d0
commit d0c1ae76f4
4 changed files with 17 additions and 0 deletions
@@ -843,6 +843,7 @@ public class BaseTableDdl implements TableDdl {
buffer.append(" not null");
}
if (hasValue(column.getCheckConstraint())) {
buffer.append(" constraint ").append(column.getCheckConstraintName());
buffer.append(" ").append(column.getCheckConstraint());
}
}
@@ -43,6 +43,14 @@ public class BaseDdlHandlerTest extends BaseTestCase {
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n");
}
@Test
public void addColumn_withCheckConstraint() throws Exception {
DdlWrite write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddColumnWithCheckConstraint());
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column status integer constraint ck_ordering_status check ( status in (0,1));\n\n");
}
/**
* Test the functionality of the Ebean {@literal @}DbArray extension during DDL generation.
*/
@@ -71,6 +71,10 @@ public class Helper {
return (AddColumn) alterTableChangeSetChildren.get(4);
}
public static AddColumn getAlterTableAddColumnWithCheckConstraint() {
return (AddColumn) alterTableChangeSetChildren.get(5);
}
public static DropColumn getDropColumn() {
return (DropColumn) changeSetChildren.get(2);
}
@@ -24,6 +24,10 @@
<column name="dbarray_integer" type="integer[]"/>
</addColumn>
<addColumn tableName="foo">
<column name="status" type="integer" checkConstraint="check ( status in (0,1))" checkConstraintName="ck_ordering_status"/>
</addColumn>
</changeSet>
</migration>