Suggested 'start over' path?

Hi folks - I’ve been using Liquibase in my Java project for the last 3-4 years.  My install.changelog.xml has grown to 100+ changesets, and it’s getting a little silly when setting up a ‘new’ installation.


I’m looking for the best strategy to ‘reboot’ my installations.  I only have 4-5 installs to deal with, and I have one good reference installation that I can delta off of.

What I thought I’d be able to do is to run a generateChangeLog off my ‘reference’ installation, and then do deltas against existing installs, bringing them ‘up to spec’.


But I can’t figure out the proper incantation to do this.  I’ve tried using ‘diffs’, but they require a copy of the refernence database on the host you’re running the diff.  What I want to do is say “Here is my install.changelog.xml that defines what I want.  There is a database.  Bring that database up to spec to match this changelog.”


Is this possible?


(More data - I’m running MySQL 5.x, my application is Java, but I do a lot of stuff from the command line as necessary.)


Thanks!

Sorry for the delay.


The best approach depends a lot on your setup and environment. Depending on how much the 4-5 installs differ, you could always just say “Starting now, we have a new changeLog” and no longer reference the old and only reference the new. You can get the databases up to the same point manually or by running one last version of the old changelog against them. You could also put some changeSets at the beginning of the new changeset with preconditions checking if potential changes have been already made or not.


There have been requests for a diff against a changelog, but that has not been implemented and would be difficult, especially if you have blocks in there. 


You should be able to diff against remote hosts, you just need the right jdbc url.


Nathan