First changeset

As the number of changesets grow for a system, is it possible to bypass them with a complete schema definition?

To illustrate, imagine there are 500,000 changesets for my application. I want to deploy a brand new version on a clean database. Is it really necessary to go through all 500,000 changesets, adding tables, dropping tables, modifying columns, etc, just to get it up to the right version, or would it be possible to periodically specify a “starting” changeSet that executes only if no previous changesets have been run, and then assumes the database is all up to date?

There is not a way to combine them again currently.  It is something we may consider in the future and it is something you can do manually for particularly bad changesets, but my general fear is that the original changesets are the ones you QA-ed and know work and if you modify them there may be unexpected differences. 

In practice you generally do not get that many changests, though, and the number is generally reasonable enough that liquibase can determine ran changesets in a matter of a few seconds.