New Webinar: Govern roles, shares, and data movement in Snowflake

Learn how to govern Snowflake roles, shares, and data movement without slowing delivery. Join our live webinar on controlling drift, permissions, and audit readiness.

How to use diff in multiple schemas in Liquibase

Last updated: September 2, 2025

You can diff multiple schemas to capture the changes made by a few people in their database environments and add those changes into a release artifact so they can be deployed in the existing release automation.

Liquibase allows you to handle multiple schemas with the following commands:

  • diff

  • diff-

  • generate-changelog

  • snapshot

Procedure

1

Run the snapshot command to capture the state of the database containing different schemas:

liquibase --output-file=mySnapshot.json snapshot --snapshot-format=json --schemas=lookup,public

When running the snapshot command on multiple schemas, enter the --schemas flag after the snapshot command.

Example properties file:

changelog-file: myChangelog.xml url: offline:postgresql=//localhost:5432/MYDATABASE username: postgres password: password classpath: ../../Drivers/postgresql-42.2.8.jar licenseKey: <ProKey> includeSchema: true

2

Manually make some changes to the target database on the different schemas.

3

Run the diff command specifying the snapshot (an offline mode) and the database with new changes:

liquibase diff --url=offline:postgresql?snapshot=mySnapshot.json --referenceUrl="jdbc:postgresql://localhost:5432/MYDATABASE" --referenceUsername=<USERNAME> --referencePassword=<PASSWORD>

Note: The format for the URL is the following: offline:<db>?snapshot=<path/to/snapshot.json>. Use the name of your database type from the list of the supported databases in place of <db> and the path relative to where the command is running in place of <path/to/snapshot.json>. If you are using another database, like H2, you may need to wrap your URL in ": "offline:<db_type>?snapshot=<path/to/snapshot.json>".

4

Run the diff-changelog command specifying the snapshot (an offline mode) and the database with new changes:

liquibase diff-changelog --url=offline:postgresql?snapshot=mySnapshot.json --referenceUrl=jdbc:postgresql://localhost:5432/MYDATABASE --changelog-file=mydiffchangelog.xml

The generated changelog contains changes that you can compare and confirm.

5

Check the changes manually or by running automation tests, and then deploy them to the production.