The generated-changeset-ids-contains-description global parameter is a Boolean that determines whether Liquibase includes changeset descriptions in changelogs generated with the generate-changelog command in addition to changeset IDs. The default value is false.


If you set generated-changeset-ids-contains-description to true and run the generate-changelog command, Liquibase includes a human-readable description of each changeset as part of the value of the id attribute in the changelog it generates. Otherwise, it only includes the changeset ID, which is made of a randomly generated value followed by the current count of changesets in the changelog.

Note: Liquibase uses the id attribute to give each change a unique identifier, not to specify the order changes are run. It can be an integer or a string.

Setting the generated-changeset-ids-contains-description parameter

You can set generated-changeset-ids-contains-description in four ways:

  • In the Liquibase properties file
  • As a global parameter in the CLI
  • As a JVM system property
  • As an environment variable (Liquibase Pro)

Liquibase properties file parameter

In Liquibase 4.1+, add the following to Liquibase properties file:

liquibase.generatedChangesetIdsContainsDescription: <true|false>

CLI global parameter

In your command line, use a global parameter with a single Liquibase command:

liquibase --generated-changeset-ids-contains-description=<true|false> generate-changelog --changelog-file=dbchangelog.xml

Java system property

In your command line, use the JAVA_OPTS Environment Variable to set a JVM system property:

Mac/Linux syntax:


Windows syntax:

set JAVA_OPTS=-Dliquibase.generatedChangesetIdsContainsDescription=<true|false>

Note: To use a Liquibase command alongside JAVA_OPTS, add && liquibase <command> to the end of your input.

Environment variable (Liquibase Pro)

In Liquibase Pro, set an environment variable:

Mac/Linux syntax:


Windows syntax:


Note: These environment variable commands only apply to the current shell. If you need to pass an environment variable to a child process without affecting the parent process, you can use the export command on Mac/Linux or the setx command on Windows.


If you use the generate-changelog command with generated-changeset-ids-contains-description set to true, the output looks like:

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
	<changeSet author="adrian (generated)" id="l14y-1 (createTable tableName=TEST_TABLE)">
		<createTable tableName="TEST_TABLE">
			<column name="TEST_COLUMN" type="VARCHAR(2147483647)"/>
			<column name="TEST_ID" type="INT">
				<constraints nullable="false" primaryKey="true" primaryKeyName="PK_TEST_TABLE"/>

Related links