update-count

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 is already deployed on the database. So, running the command update-count --count=2 deploys changeset b and c without applying changeset d.

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 that may arise before running the command.

Syntax

To run the update-count command, specify the driver, classpath, and URL in the Liquibase properties file. For more information, see Create and Configure a 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.

Command arguments

Tip: For best results, specify all commands and parameters in the --kebab-case format in the CLI. If your preference is camelCase, it also works in the CLI.

Attribute Definition Requirement
--changelog-file *

The root changelog

Required
--count

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

Required
--url

The JDBC database connection URL. See Using JDBC URL in Liquibase.

Required
--change-exec-listener-class

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

Optional
--change-exec-listener-properties-file

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

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

Name of the default catalog to use for the database connection

Optional
--default-schema-name

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.

Tip: In Liquibase v4.23.0+, camelCase for defaultSchemaName works successfully. If you are on an earlier version, camelCase may not work as expected.

Note: The syntax liquibase.command.defaultSchemaName is valid for v4.19.0+. For prior versions, use defaultSchemaName.

Optional
--driver

The JDBC driver class

Optional
--driver-properties-file

The JDBC driver properties file

Optional
--force-on-partial-changes

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

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

Password to connect to the target database.

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

Optional
--rollback-on-error=[boolean]

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

Produces a summary list of any changesets skipped and why they were skipped. Valid values are OFF, SUMMARY, and VERBOSE. Default: SUMMARY. Available in Liquibase 4.19.1+.

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

Summary output to report update 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. Available in Liquibase 4.24.0+.

Optional
--username

Username to connect to the target database.

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

Optional

* 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.

Output

Liquibase Version: 4.9.1
Liquibase Community 4.9.1 by Liquibase

Liquibase command 'update-count' was executed successfully.