Rollbacks and refactoring of changelogs


Can someone help me understand how rollbacks are supposed to work when I move changesets around to different files (and specify the ‘filename’ attribute to preserve the old logical filename)? I assume the rollbacks need all the changesets to be present in the changelog so that the rollback statements can be inferred. Am I missing something?


The logic changed between 1.9 and 2.0, but the general idea is that liqubase uses the id/author/filename of the changesets that were ran according to the databasechangelog table to rollback the changes.  You do need the executed changesets to be found in the changelog file so we know how to roll it back, though.