generated-changeset-ids-contains-description
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
.
Uses
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:
JAVA_OPTS=-Dliquibase.generatedChangesetIdsContainsDescription
=<true|false>
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:
LIQUIBASE_GENERATED_CHANGESET_IDS_CONTAINS_DESCRIPTION
=<true|false>
Windows syntax:
set LIQUIBASE_GENERATED_CHANGESET_IDS_CONTAINS_DESCRIPTION
=<true|false>
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.
Output
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"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.9.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-4.9.xsd">
<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"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>