github liquibase/liquibase v3.10.0
on GitHub

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
  • Add runWith=ejdbc to 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.

one month ago