A couple of things I found out today while working on this.  First, live databases are required even if doing the initial scripts dump from the hibernate entities.  Fundamental to liquibase is the notion of a change set, the first thing liquibase does is connect to the database and asks what the current change set is. Hoping we can code around this in liquibase.  Second, postgres doesn’t like camelCase column names, when it sees these it faithfully creates the column, but it quotes the column name (e.g. “createdBy”).  That in turn breaks the data population scripts later.

I’m going to go through all the entities and makes some updates, see what breaks.  Its pretty standard in database terms to not use camelCase for column names and instead use underscores. 

Here’s a section of the GatewayBean that has been updated (added name = “xx_yy” to the @Column annotations):

private String id;
private String name;
@Column(updatable=true, nullable=true, length=512)
private String description;
@Column(name = "created_by", updatable=false, nullable=false)
private String createdBy;
@Column(name = "created_on", updatable=false, nullable=false)
private Date createdOn;
@Column(name = "modified_by", updatable=true, nullable=false)
private String modifiedBy;
@Column(name = "modified_on", updatable=true, nullable=false)
private Date modifiedOn;

@Column(updatable=true, nullable=false)
private GatewayType type;
@Column(updatable=true, nullable=false)
private String configuration;