Eric,
I made the entity updates and also corrected some embedded SQL, everything looks good.
Give it a whirl and let me know.
Pull request:
https://github.com/apiman/apiman/pull/146
Thanks,
Brandon
On Jun 17, 2015, at 4:19 PM, Brandon Gaisford <bgaisford(a)punagroup.com> wrote:
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):
@Id
@Column(nullable=false)
private String id;
@Column(nullable=false)
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)
@Enumerated(EnumType.STRING)
private GatewayType type;
@Lob
@Column(updatable=true, nullable=false)
private String configuration;
Brandon