Changelog aggregation

I wanted to see what the best way was to offer up some code as a thanks–a way to give back.

I have code that does, effectively, a Class.getResources("/META-INF/liquibase/changelog.xml") and then aggregates these together into a (usually temporary) composite changelog via statements, in classpath order or reverse classpath order.

The net effect is that you can run it in a unit test (for example) and a properly ordered and built aggregate change log is put together and run against your database.

If your unit test happens to be run in a big-classpath world (like is commonly found in Maven), this means that each project you depend on can have its own little changelog fragment, define its own tables, and rest in the knowledge that targets of foreign keys will exist (to the extent that this can ever be known).

I would love to hand this back to the community, as it’s the sort of generic thing that might help others who have the same itch.  What should I do with it?

Laird is a new area I have been starting along with liquibase 2.0.  Extensibility is one of the big goals of 2.0, and we need a central repository place for plugins and other liquibase-related tools. 

The goal would be to for the extensions area to be a place for new and/or experimental features to go as well and can be iterated and released at a different rate than the core liquibase library.  Once plugins or extensions are stable and generally useful, they can be merged into the core library.

You can use the project’s issue tracker and SVN if you like, or simply point off to wherever you host the project.


Did you end up sharing your code on ?  I’m looking for a way to set up liquibase so that I can run the changesets from multiple libraries in my application, and this sounds like it would solve my problems.

No, I haven’t.  Let me look into that.