Database Version Control with Liquibase
It&#x27;s frustrating watching this space.<p>The problem is so trivially solved that there&#x27;s almost no product to build.  But people want to build something to solve it, so they build a much more complicated solution that can be configured to solve any potential database migration scenario, regardless of whether anybody in history has ever needed to handle that scenario.<p>Here&#x27;s how you actually version databases:<p><pre><code>  change_0030-0031.sql
  ---
  alter table buns add column seed_count int
  update version_number set version = 31
</code></pre>
Check that in to source control and you&#x27;re 90% done.<p>Extra points for building the tool that spins through all the files in source control and executes the ones that come before the current version_number on the server in question.  And for automatically creating a change_0031-0032.sql file for the next guy to use (with that update line pre-filled.)<p>You&#x27;ll be hard pressed to spend an entire day building this, but sadly nobody does.  Everybody downloads some overcomplicated monstrosity like the one in the article that describes changes in XML and whatever else.  Then spends two days fiddling with config files to get it working.<p>I&#x27;d give up complaining about it if I didn&#x27;t keep ending up working with shops that use stuff like this.