3.2 Requirements for Using Liquibase

The two important aspects for using the Liquibase functionality are capturing and deploying objects in an Oracle database.

Capture Objects

To capture an object or a schema, you must have SQLcl with the Liquibase plug-in available.

In this release, you can only capture objects from the schema you are connected to in SQLcl. You also need write permission on the directory in which you save the files.

If you are capturing an entire schema, the user you are connected to must have the privilege to create a table. The DATABASECHANGELOG_EXPORT table is created internally to gather object details and sort them correctly. The created object is automatically excluded from the capture process and destroyed upon capture completion.

Deploy Objects

Liquibase uses the DATABASECHANGELOG table to track the changesets that have been run. The DATABASECHANGELOGLOCK table ensures that only one instance of Liquibase is running at a time. The DATABASECHANGELOG_ACTIONS table tracks the object state and the SQL statements executed during deployment.

  • SQLcl

    Deploying changes to any database through SQLcl requires the privilege to create a table. You must have necessary permissions to create any object type through the change that you are deploying.

  • Liquibase

    If you use Liquibase directly to deploy changesets, you need:

    • the extension installed in your Liquibase environment. Add the following jar files from sqlcl/lib and sqlcl/lib/ext folders to the liquibase/lib folder:
      • dbtools-liquibase.jar
      • dbtools-apex.jar
      • guava-with-lf.jar
      • xmlparserv2_sans_jaxp_services.jar
      • dbtools-common.jar
    • the privileges to create a table and a package.
    • to update your properties file by adding the following line:
      change-exec-listener-class: liquibase.changelog.visitor.OracleActionChangeListener