Strange first experiences with 1.9.5

Greetings,

I’ve been looking forward to getting started with LB for a while now… the Maven integration and the IntelliJ plugins had me really excited!

But when I finally got around to setting things up tonight, I was a little less enthused.  A few issues that I came across:

  • It was very poorly (if at all, I couldn't find it) documented on how to get started with an existing database.  The videos were helpful for a high-level overview of the product, but it was nowhere to be found how to take an existing database, generate the proper changeset for it, then synchronize that existing database with the proper LB additions to register that it was in sync. 
  • The IntelliJ tools have a lot of light functional issues that won't fly in production.  Every time I would right click on a database and try to update it with the change set I generated, it would always revert back to the database that I got the change set from.  I finally tried to "drop objects" on an already empty database, but it didn't care, it dropped the objects on the database I really didn't want to drop.  (So I am now downloading 2+GB of data again from stage server.)  That would suck eggs in production.  Another issue was that the filenames that were stored in the LB tables were absolute filesystem paths that have no relevance in a Spring tool.
  • Once I did get a change list to apply to a database, half of the table names were properly upper-cased, the rest were improperly converted to lower case.  There's no rhyme or reason as to why, but I am concerned about keeping them the same case because MySQL (not my choice either) has platform-dependent characteristics regarding case sensitivity.  And I'm concerned about whether future table creation is going to be done with the correct case or I am just setting myself up for a world of future hurt.
  • I would have liked to send more relevant information about why these problems happened and maybe some patches to consider, but the source jars were not generated and put into the central repository alongside the binaries.  I would *beg* the authors to do this from now on. 
In general, I'm really looking forward to using LB, but I'm just fearful after this first experience and hoping other community members can give me some needed confidence that this isn't a bad way to go.

Thanks, Brian

Hi there,

A team member of mine did the work to get our existing schema working with LB. This wasn’t a small feat, but I can tell you how glad I am that we did it. We support multiple databases in our product and every time I have to change a data model I find myself saying, “Gosh I love Liquibase. This would have bee 10x harder the old way.”

Hope you are able to get over the initial hump. Its worth it on the otherside!

Evan

The main problem you are running into is that the  The intellij (and eclipse) plugins have not been updated or tended to since their initial release.  The intellij plugin in particular was created for Intellij 7 and used a 3rd party database viewer as a base.  The 3rd party plugin turned out to be buggy and Intellij 8+ has native database support, and so what needs to be done is a complete rewrite of the plugin.  Since the core liquibase development has been taking all my available time, this has not been possible and so the intellij and eclipse plugins have been discontinued as supported (and documented) options. 

While I would like to get back to them at some point, for you will need to create and execute your databasechangelog files manually. 

Nathan

Ok, thanks guys.  I wonder if it would be possible to add metadata to the existing plugin so it is rejected by IJ 8 & 9, then do a quick update so people aren’t led astray by this.  Totally understand not having the time for it, but it works “well enough” to look like a train wreck instead of something that just shouldn’t be run by later versions at all.

Evan, I came to find an associate is also using LB on a project that he has, so I’m hoping that he’ll pitch in with additional info.  He’s also been bit by this case sensitivity issue, but didn’t seem to be concerned about it.  I’m only concerned because when developing on one platform and deploying to another, it can cause serious issues.

Finally, I would like to ask that the source jars are generated with the maven builds and published together.  Nathan, I can help you with that if you want it, it’s just a few lines in the POM.

Cheers, B

Good point with it making liquibase look like a trainwreck.  I’ve avoided removing it from the intellij plugin because, since I was not sure if there were some people currently using it and getting value from it (and avoiding the bugs in the process).  I didn’t want to take that away from them if it was working for them. 

I’ll see what is available in their metadata.

If you could suggest what to do to get the source with the maven repository, that would be great.  I’m not a big maven user, so any help you have would be great.  We did change from an ant-based build to fully maven-based builds for 2.0 (in trunk), so the issue may be resolved with the next release as well already. 

Nathan

Hi Nathan, sorry I missed your request here, but saw that you are on Sonatype’s repo now, which is great.  Cheers!