Liquibase doesn't honor type modifiers

Code:



AddColumn.Column col = new AddColumn.Column(); ... col.setType("INT(10) ZEROFILL UNSIGNED"); changeSet.getChangeSetChildren().add(addCol);

Output:

ALTER TABLE tablename ADD testcolumn INT NULL;

... which means both the zerofill and unsigned modifiers are completely lost.

Is there a way to make Liquibase use the EXACT value passed to setType ?


NOTE: See also: http://stackoverflow.com/questions/27850821/liquibase-is-not-creating-unsigned-columns

The above targets MySQL, using the latest available driver, but I get the same problem with older drivers.


I have tested this with version 3.2.3 and it works fine, so until the bug is fixed, you could use version 3.2.3.

This will be fixed in 3.4.0 with CORE-2300 . There’s now a test case that will prevent it from breaking. See pull request #401 .

@mches That pull request only deals with UNSIGNED modifiers, not ZEROFILL.