Recently, I helped a client that was having issues with
  deployments causing locking in their production databases.
   At a high level, the two key components used in the
  environment were:
  - Capistrano (scripted deployments) [website]
  
- Liquibase (database version control) [website]
  
  At a high level, they currently used a CLI call to Liquibase as a
  sub-task within a larger deployment task.  The goal of this
  engagement was to modify that sub-task to run Liquibase in a
  non-blocking fashion as opposed to the default that just runs
  native ALTERS against the database.
  As I wasn’t very familiar with Liquibase, I took this opportunity
  to learn more about it and it seems like a very valuable tool.
   Essentially, it does the following:
  - Adds two version control tables to …
[Read more]