Liquibase generates invalid SQL for 'character varying' type
Description
Environment
Postgres 9.3, java7,
Activity
Show:
Nathan Voxland May 27, 2014 at 3:48 PM
Fixed. Converts to alias "varchar" for better cross-database support

tigrant April 10, 2014 at 6:33 AM
The 2.0.5 version works as expected.
Given changeset like:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet id="1" author="ccc">
<createTable tableName="t">
<column name="afield" type="character varying(256)"/>
</createTable>
</changeSet>
</databaseChangeLog>
Liquibase will generate an SQL which is wrong:
./liquibase --driver= --changeLogFile=cs.xml '--url=jdbcostgresql://localhost/mydb?prepareThreshold=3' --username=me --password= --classpath=/usr/share/dcache/classes/postgresql-9.3-1101-jdbc41.jar updateSQL
*********************************************************************
Update Database Script
*********************************************************************
Change Log: cs.xml
Ran at: 4/10/14 8:13 AM
Against: mydb@jdbcostgresql://localhost/chimera?prepareThreshold=3
Liquibase version: 3.1.1
*********************************************************************
– Lock Database
– Changeset cs.xml::1::ccc
CREATE TABLE public.t (afield CHARACTER(256) varying);
INSERT INTO public.databasechangelog (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, LIQUIBASE) VALUES ('1', 'ccc', 'cs.xml', NOW(), 25, '7:eceb8ce8eae916d19dfd3cf9fac45b4a', 'createTable', '', 'EXECUTED', '3.1.1');
– Release Database Lock
#
as you can see, instead of
CREATE TABLE public.t (afield CHARACTER VARYING(256));
it generates
CREATE TABLE public.t (afield CHARACTER(256) varying);
Which, of course, can't be applied.