update-count

Last published July 28, 2025

The update-count command sequentially updates a specified number of changesets on your database.

Uses

The update-count command is mainly used when you want to apply changes and update changesets sequentially, starting with the changesets from the top of the changelog file until the number specified is reached.

The image below shows four changesets: changeset a, changeset b, changeset c, and changeset d. As you can see, changeset a has already been deployed in the database. So, running the command update-count --count=2 deploys changeset a and c without applying changeset d.

update-count

Additionally, the best practice is to run the update-count-sql helper command because it allows you to inspect the update-count SQL, so you can correct any issues before running the command.

In Liquibase Pro 4.25.1 and later, you can automatically generate a database Update Report summarizing this command.

Syntax

To run the update-count command, specify the driver, classpath, and URL in the Liquibase properties file. You can also specify them from the command line.

Then run the update-count command:

liquibase update-count --count=2 --changelog-file=example-changelog.xml

Note: The --count=myCount syntax was added in Liquibase 4.4. If you use an older version, specify your count as a positional argument: <command> myCount.

* Liquibase will check nested changelogs for definitions of the changesets to update.

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

--changelog-file=<string>

The root changelog

Required

--count=<int>

Integer specifying how many changes Liquibase applies the command to. Specify as --count=myCount. Positional format <command> <count> deprecated in 4.4+.

Required

--url=<string>

The JDBC database connection URL.

Required

--change-exec-listener-class=<string>

Fully-qualified class that specifies a ChangeExecListener. For more information, see Implementing a Custom ChangeExecListener Class with Liquibase and ChangeExecListenerCommandStep.

Optional

--change-exec-listener-properties-file=<string>

Path to a properties file for the ChangeExecListener class. For more information, see Implementing a Custom ChangeExecListener Class with Liquibase and ChangeExecListenerCommandStep.

Optional

--context-filter=<string>

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 --contexts instead of --context-filter.

Optional

--default-catalog-name=<string>

Name of the default catalog to use for the database connection

Optional

--default-schema-name=<string>

Name of the default schema to use for the database connection. If defaultSchemaName is set, then objects do not have to be fully qualified. This means you can refer to just mytable instead of myschema.mytable.

Note: In the properties file and JAVA_OPTS only: in 4.18.0 and earlier, specify this parameter using the syntax defaultSchemaName. In 4.19.0 and later, use the syntax liquibase.command.defaultSchemaName.

Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set --preserve-schema-case to true. However, in Liquibase 4.12.0–4.22.0, the Liquibase validator still throws a DatabaseException error if you specify a mixed-case value of defaultSchemaName. In 4.23.0 and later, the Liquibase validator accepts any casing.

Optional

--driver=<string>

The JDBC driver class

Optional

--driver-properties-file=<string>

The JDBC driver properties file

Optional

--force-on-partial-changes=<true|false>

Liquibase Pro only. Use this argument only if you are specifying --rollback-on-error=true to automatically roll back update operations containing errors. --force-on-partial-changes=true specifies whether Liquibase rolls back partially invalid changesets, such as a changeset containing two changes: one with an error and one without an error. This ensures that you can successfully roll back all changes if a deployment has an error, even if the changeset contains multiple changes. Available in Liquibase 4.25.0+. Default: false. See also: failOnError.

Optional

--label-filter=<string>

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

--password=<string>

Password to connect to the target database.

Tip: It is best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

Optional

--report-enabled=<true|false>

Enables a report at the command level. Overrides the global parameter --reports-enabled. Default: true.

Optional

--report-name=<string>

Specifies the name of the report file at the command level. Overrides the global parameter --reports-name. By default, Liquibase generates a new report file labeled with a timestamp (user's local time). If you set a custom name, Liquibase overwrites the existing file every time you generate a new report. Default: report-<DD-Mon-YYYY-HHmmss>.html.

Optional

--report-path=<string>

Specifies the file path to the report file at the command level. Overrides the global parameter --reports-path. Default: ./.

Optional

--report-suppress-exception=<true|fal

Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter --reports-suppress-exception. Default: false. However:

If --report-suppress-exception is not set and --report-suppress-sql=true, Liquibase suppresses all SQL, including exception SQL.

If --report-suppress-exception=false and --report-suppress-sql=true, Liquibase suppresses most SQL but shows exception SQL.

Optional

--report-suppress-sql=<true|false>

Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter --reports-suppress-sql. Default: false.

Optional

--rollback-on-error=<true|false>

Liquibase Pro only. If any changeset in a deployment fails, --rollback-on-error stops the update operation and rolls back all changesets you just deployed. Available in Liquibase 4.18.0+. Default: false.

Note: A changeset marked failOnError=false does not trigger as an error, so rollback-on-error will not occur. Additionally, if a changeset is not auto-rollback compliant or does not have a rollback script, then rollback-on-error does not occur for any changeset. Read more: failOnError.

Optional

--show-summary=<string>

Liquibase 4.24.0+. Produces a summary list of any changesets skipped and why they were skipped. Valid values are OFF, SUMMARY, and VERBOSE. In Liquibase Pro, SUMMARY and VERBOSE provide additional information about failed deployments. Default: SUMMARY.

Note: Liquibase may display one or multiple reasons for halting deployment of a changeset. If Liquibase cannot resolve a halting reason, it does not evaluate the changeset for other possible halting reasons.

Optional

--show-summary-output=<string>

Liquibase 4.24.0+. Summary output to report the updated summary results. Valid values are LOG, CONSOLE, and ALL. If set to LOG, the --show-summary output is sent to the file specified in --log-file. If set to CONSOLE, the --show-summary output is sent to STDOUT. If set to ALL, the --show-summary output is sent to both locations. Default: ALL.

Optional

--username=<string>

Username to connect to the target database.

Tip: It is best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

Optional

Liquibase Version: 4.9.1 Liquibase Community 4.9.1 by Liquibase Liquibase command 'update-count' was executed successfully.