- Reference
- Version · 6.0
- Change Automation Reference
status
Last updated: September 29, 2026
The status command states the number of undeployed changesets. Running status lists all undeployed changesets. It also lists the id, author, and file path name for each undeployed changeset. The status command does not modify the database.
Uses
The status command is typically used when changesets were added to a changelog through source control by another developer. The command confirms what has been deployed and what changesets are pending per author and corresponding IDs.
You may also find the status command useful alongside contexts and labels applied to your changesets. This lets you see which changesets are eligible for deployment according to the contexts or labels you've defined, which may help you realize when a changeset is marked with the wrong context or label. For example, if you have a changeset marked with labels="myLabel", when you run the status command, you can also specify --label-filter="myLabel". This way, Liquibase only shows the status of changesets marked with myLabel, and not other explicit labels. If a changeset has no label, it always included in the command output.
Displaying changeset attributes
Adding --verbose to the status command lists each pending changeset's attributes underneath its identifier. On its own, --verbose looks for labels, context, teams, releases, keywords, and conditions, and lists only the ones each changeset actually sets. The list can differ from one changeset to the next, and a changeset that sets none of them shows its identifier alone.
You can also tell --verbose which attributes to show, by giving it a comma-separated list of attribute names.
liquibase status --verbose=labels,teams,releases --changelog-file=example-changelog.xml
The attribute names --verbose accepts are: labels, context, teams, releases, keywords, conditions, runwith, runonchange, enddelimiter, rollback, and comments. You can also write label for labels, and contexts or contextFilter for context. The teams, releases, keywords, and conditions attributes are new in Liquibase Secure 6.0.
When you name the attributes yourself, every changeset lists all of them, in the order you gave. An attribute the changeset does not set shows its name with nothing after it, and so does an attribute name Liquibase does not recognize. Each line is labelled with the name you typed, in lowercase, so --verbose=contextFilter prints contextfilter:. Liquibase prints the first 128 characters of an attribute's value, so a long rollback or comments value does not crowd out the rest of the output.
Showing only the count
Adding --simple to the status command suppresses the per-changeset lines, leaving the count of pending changesets and nothing else. It is the flag to reach for when a script only needs to know whether anything is outstanding.
liquibase status --simple --changelog-file=example-changelog.xml
--simple also suppresses the attribute lines that --verbose adds, so combining the two leaves you with the count on its own. The message Liquibase prints when there is nothing to deploy is unaffected.
Syntax
To run the status command, specify the driver, classpath, and URL in the properties file. You can also specify these properties in your command line.
Run the status command:
liquibase status --changelog-file=example-changelog.xml
An example using labels:
liquibase status --label-filter="myLabel" --changelog-file=example-changelog.xml
Note: The username and password attributes are not required for connections and systems which use alternate means of authentication. Also, you can specify database credentials as part of the url attribute.
Command parameters
Attribute | Definition | Requirement |
| The root changelog | Required |
| The JDBC database connection URL. | Required |
| Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax | Optional |
| Name of the default catalog to use for the database connection | Optional |
| Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set | Optional |
| The JDBC driver class | Optional |
| The JDBC driver properties file | Optional |
| Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. | Optional |
| Specifies the changeset conditions to match. conditions is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset keywords to match. keywords is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset releases to match. releases is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset teams to match. teams is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Password to connect to the target database. | Optional |
| Suppresses the per-changeset lines, so only the count of pending changesets is shown. Default: | Optional |
| Username to connect to the target database. | Optional |
| Specifies which changeset attributes to display for each pending changeset. With no value or | Optional |
Attribute | Definition | Requirement |
| The root changelog | Required |
| The JDBC database connection URL. | Required |
| Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax | Optional |
| Name of the default catalog to use for the database connection | Optional |
| Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set | Optional |
| The JDBC driver class | Optional |
| The JDBC driver properties file | Optional |
| Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. | Optional |
| Specifies the changeset conditions to match. conditions is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset keywords to match. keywords is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset releases to match. releases is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset teams to match. teams is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Password to connect to the target database. | Optional |
| Suppresses the per-changeset lines, so only the count of pending changesets is shown. Default: | Optional |
| Username to connect to the target database. | Optional |
| Specifies which changeset attributes to display for each pending changeset. With | Optional |
Attribute | Definition | Requirement |
| The root changelog | Required |
| The JDBC database connection URL. | Required |
| Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax | Optional |
| Name of the default catalog to use for the database connection | Optional |
| Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set | Optional |
| The JDBC driver class | Optional |
| The JDBC driver properties file | Optional |
| Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. | Optional |
| Specifies the changeset conditions to match. conditions is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset keywords to match. keywords is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset releases to match. releases is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset teams to match. teams is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Password to connect to the target database. | Optional |
| Suppresses the per-changeset lines, so only the count of pending changesets is shown. Default: | Optional |
| Username to connect to the target database. | Optional |
| Specifies which changeset attributes to display for each pending changeset. With | Optional |
Attribute | Definition | Requirement |
| The root changelog | Required |
| The JDBC database connection URL. | Required |
| Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax | Optional |
| Name of the default catalog to use for the database connection | Optional |
| Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set | Optional |
| The JDBC driver class | Optional |
| The JDBC driver properties file | Optional |
| Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. | Optional |
| Specifies the changeset conditions to match. conditions is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset keywords to match. keywords is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset releases to match. releases is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset teams to match. teams is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Password to connect to the target database. | Optional |
| Suppresses the per-changeset lines, so only the count of pending changesets is shown. Default: | Optional |
| Username to connect to the target database. | Optional |
| Specifies which changeset attributes to display for each pending changeset. With | Optional |
Attribute | Definition | Requirement |
| The root changelog | Required |
| The JDBC database connection URL. | Required |
| Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax | Optional |
| Name of the default catalog to use for the database connection | Optional |
| Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set | Optional |
| The JDBC driver class | Optional |
| The JDBC driver properties file | Optional |
| Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. | Optional |
| Specifies the changeset conditions to match. conditions is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset keywords to match. keywords is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset releases to match. releases is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Specifies the changeset teams to match. teams is a tag you can add to changesets to control which changesets will be executed in any migration run. Matching is a straight string comparison. Prefix the value with the @ operator to match strictly, so that only changesets with the exact value match. Available in Liquibase Secure 6.0 and later. | Optional |
| Password to connect to the target database. | Optional |
| Suppresses the per-changeset lines, so only the count of pending changesets is shown. Default: | Optional |
| Username to connect to the target database. | Optional |
| Specifies which changeset attributes to display for each pending changeset. With | Optional |
Output
When successful, the status command produces the following output:
--verbose=false (default)
--verbose=true
--verbose=labels,teams,releases
--simple