Liquibase 3.10.0 offers SQL Plus integration, Custom Executor extensibility, Complementary Bash script
SQL Plus Integration and the new “runWith” attribute
There are occasions when the Liquibase in-built JDBC connector has trouble processing highly-specialized or variable-rich SQL, and a more purpose-built tool, like SQL Plus or other executor, is required.
For Liquibase Community and Pro users, we are introducing an optional changeset attribute, called
runWith=<executor> which allows you to specify an “executor” to run your SQL. This new capability works with changesets in Formatted SQL, XML, JSON or YAML changelogs which call inline SQL or
sqlFile tagged changesets. For Pro users, there is also a new
liquibase.sqlplus.conf file, which lives alongside your liquibase.properties or POM file, where you can optionally specify some useful key-value pairs for configuring your executor.
As a Liquibase Pro user, employ the new SQLPlus integration by simply adding
runWith=sqlplus to a changeset, and have SQL Plus in your PATH (or configure it in the accompanying
liquibase.sqlplus.conf file). It’s now that easy to run your complex or specialized SQL changesets with SQL Plus.
Integrate your own executor
As exciting, and true to open-source and open-extensibility, Liquibase Community users can now write their own classes to integrate their own executor. Say, for example, you need an encrypted JDBC tool, which you want to call as “ejdbc” from your changeset? Simply follow the included example so you can take advantage of this new feature:
- Write and configure the classes to call your tool
runWith=ejdbcto select changesets to process them with your custom executor
New Auto-complete Bash Script
In the Liquibase 3.10 release, you will also find a new bash script for MacOS / and Git Bash for Windows users called
.liquibase-completion-mac.bash. This script adds some ease of use to the CLI, including auto-complete of commands and and auto-rollout of parameters. This is a single bash script that will not affect any core Liquibase code, and can live alongside the existing bash script which has and will continue to ship with Liquibase.