Liquibase Commands
Liquibase comes with several commands that can help you migrate and make changes to your databases. The following is a list of all commands available:
Liquibase start commands
Tip: All Commands and Parameters use the --kabob-case format in the CLI environment.
Command | Description |
---|---|
init hub | The hub subcommand connects your local Liquibase activity to Liquibase Hub with an API key and sets up the Liquibase environment to use Liquibase Hub.
|
init project | The project subcommand finds or creates your project folder with the changelog and Liquibase properties files and delivers an example H2 database to help you get started. |
init start-h2 | The start-h2 subcommand starts the in-memory H2 database included in the Liquibase installation package to get started and test how Liquibase works. |
Database update commands
Command | Description |
---|---|
update | Updates database to current version. |
update-sql | A helper command that allows you to inspect the SQL Liquibase will run while using the update command. |
update-count | Applies the next <value> changesets. |
update-count-sql | Writes SQL to apply the next <value> changesets to STDOUT . |
update-testing-rollback | Updates the database, then rolls back changes before updating again. |
update-to-tag | Applies sequential changes to your database from the newest changeset to the changeset with the tag you specified and applied earlier. |
update-to-tag-sql | A helper command that inspects the SQL Liquibase will run while using the update-to-tag <tag> command. |
Database rollback commands
Command | Description |
---|---|
rollback | Rolls back the database to the state it was in when the tag was applied. |
rollback-sql | A helper command that produces the raw SQL Liquibase would run when using the rollbackByTag command. |
rollback-to-date | Rolls back the database to the state it was in at the given date/time. |
rollback-to-date-sql | A helper command that allows you to inspect the SQL Liquibase will run while using the rollback-to-date command. |
rollback-count | Rolls back the last <value> changesets. |
rollback-count-sql | Writes SQL to roll back the last <value> changesets to STDOUT . |
rollback-one-changeset![]() |
Rolls back a single changeset without needing to roll back other already applied changeset. |
rollback-one-changeset-sql![]() |
Writes SQL to roll back a single changeset to STDOUT . |
rollback-one-update![]() |
Rolls back all changesets related by a specific deploymentId that was made during a previous change to your database. |
rollback-one-update-sql![]() |
A helper command that allows you to inspect the SQL Liquibase will run to revert all changeset associated with the deploymentID specified in the rollback-one-update command. |
future-rollback-sql | Writes SQL to roll back the database to the current state after the changes in the changelog have been applied. |
future-rollback-count-sql | Generates the SQL that Liquibase would use to sequentially revert the number of changes associated with undeployed changesets, which are added to a changelog file. |
future-rollback-from-tag-sql | Produces the raw SQL Liquibase would need to roll back all undeployed changes made up to the specified tag. |
Database snapshot commands
Command | Description |
---|---|
generate-changelog | Generate a changelog from a database when adding Liquibase to a new project. This is synonymous with snapshot with the exception of saving the output as XML in the changelog. |
snapshot | Gathers the current database schema and displays that information to STDOUT . With options, can save the schema in JSON format, and that JSON snapshot can serve as a comparison database. |
snapshot-reference | Captures the current state of the referenceURL database, which is the source database. |
Database diff commands
Command | Description |
---|---|
diff | Writes description of differences between two databases to standard out. |
diff JSON![]() |
Allows you to compare two databases of the same type, or different types, to one another and use the output in a JSON format. |
diff-changelog | Adds any differences between the databases specified to a changelog. Can append in any of the supported changelog formats. |
Status commands
Command | Description |
---|---|
history | Lists all deployed changesets and their deploymentIds . |
status | Outputs the count (or list, if --verbose ) of changesets that have not been deployed. |
Maintenance commands
Command | Description |
---|---|
calculate-checksum | Calculates and prints a checksum for the changeset with the specified id in the following format: filepath::id::author . |
changelog-sync | Marks all changes as executed in the database. |
changelog-sync-sql | Writes SQL to mark all changes as executed in the database to STDOUT . |
changelog-sync-to-tag | Marks all undeployed changesets from your changelog up to and including the specified tag as executed in your database. |
changelog-sync-to-tag-sql | Produces the raw SQL that Liquibase would run when using the changelog-sync-to-tag command to mark all undeployed changesets associated with the specified tag as executed in your database. |
clear-checksums | Removes current checksums from database. On next update changesets that have already been deployed will have their checksums recomputed, and changesets that have not been deployed will be deployed. |
drop-all | Drops all database objects owned by the user. |
execute-sql | Executes a SQL string or file. |
list-locks | Lists who currently has locks on the database changelog. |
mark-next-changeset-ran | Mark the next change set as executed in the database. |
mark-next-changeset-ran-sql | Inspects the SQL Liquibase will run while using the mark-next-changeset-ran command. |
release-locks | Releases all locks on the database changelog. |
tag | "Tags" the current database state for future rollback. |
tag-exists | Checks whether the given tag already exists. |
unexpected-changesets | Produces a list of changesets that were run in the database but do not exist in the current changelog. |
validate | Checks the changelog for errors. |
Documentation commands
Command | Description |
---|---|
db-doc | Generates Javadoc-like documentation based on current database and changelog. |
Liquibase Hub commands
Option | Description |
---|---|
register-changelog | Connects your local Liquibase activity to a specific Liquibase Hub Project. |
sync-hub | Synchronizes the local DATABASECHANGELOG table with Liquibase Hub. |
deactivate-changelog |
Removes the |
Quality checks commands
Command |
Description |
---|---|
copy | The copy subcommand copies a customizable check so that you can run the same check multiple times with different parameters.
|
customize | The customize subcommand allows you to customize checks specified in your check configurations.
|
delete | The delete subcommand allows you to delete a copy of a check from your checks settings.
|
disable | The disable subcommand disables a specific check provided in the --check-name parameter.
|
enable | The enable subcommand enables a specific check provided in the --check-name parameter.
|
reset | The reset subcommand reverts customizations made to the check indicated in the --check-name parameter to default settings.
|
run | The run subcommand executes checks using the checks settings file and the changelog file you specify.
|
show | The show subcommand prints the available checks and their configurations as indicated in the check settings file to STDOUT .
|
bulk-set![]() |
The bulk-set command sets all qualifying quality checks to the same value. |
Required parameters for most commands
Option | Description |
---|---|
--changelog-file=<path and filename>
|
The changelog file to use. |
--username=<value>
|
Database username. |
--password=<value>
|
Database password. |
--url=<value>
|
Database JDBC URL. |
--driver=<jdbc.driver.ClassName>
|
Database driver class name. |
Optional parameters
Option | Description |
---|---|
--classpath=<value>
|
Classpath containing migration files and JDBC Driver. List multiple items using the standard path separator for your platform, which is a colon (:) on Mac/Linux, and a semicolon (;) on Windows. |
--contexts=<value>
|
changesets Contexts to execute. |
--defaultSchemaName=<schema>
|
Specifies the default schema to use for managed database objects and for Liquibase control tables. |
--databaseClass=<custom.DatabaseImpl>
|
Specifies a custom Database implementation to use |
--defaultsFile=</path/to/file>
|
File containing default option values. (Default is ./liquibase.properties ). |
--includeSystemClasspath=<true or false>
|
Include the system classpath in the Liquibase classpath. (default: true) |
--promptForNonLocalDatabase=<true or false>
|
Prompt if non-localhost databases. (default: false) |
--currentDateTimeFunction=<value>
|
Overrides current date time function used in SQL. Useful for unsupported databases. |
--labelFilter=<value>
|
Filter the changelog using Labels. |
--log-level=<level>
|
Execution log level (debug, info, warning, severe, off). |
--log-file=<filename>
|
Rather than logging to console, send logging messages to a file. |
--liquibaseProLicenseKey=<licenKey>
|
A Liquibase Pro license key (base64 encoded string) unlocks additional features. |
--help
|
Output command line parameter help. |
--dataOutputDirectory
|
Directory where insert statement CSV files will be kept (required by generate-changelog command). |
--propertyProviderClass=<properties.ClassName>
|
Custom properties implementation to use. |
--schemas=<name1,name2>
|
A comma-separated list of database schemas from which to include objects when executing a command, such as snapshot , generate-changelog , or diff-changelog . This flag is required when you are referencing multiple schemas in a command. |
Required diff parameters
Option | Description |
---|---|
--referenceUsername=<value>
|
Base Database username. |
--referencePassword=<value>
|
Base Database password. |
--referenceUrl=<value>
|
Base Database URL. |
Optional diff parameters
Option | Description |
---|---|
--referenceDriver=<jdbc.driver.ClassName>
|
Base Database driver class name. |
--referenceDefaultSchemaName=<schema>
|
Base Database default schema name. |
changelog properties
Option | Description |
---|---|
-D<property.name>=<property.value>
|
Pass a name/value pair for substitution of ${} blocks in the changelogs. |