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
- 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 …