tag
The tag
command marks the current database state so you can roll back changes in the future.
Tip: If you want to apply a tag to your database within your changelog, write a changeset containing the tagDatabase
Change Type. To check whether a tag exists, use the tag-exists
command.
Uses
The tag
command is typically used to mark the current database state, version, release, or any other information by adding the tag to the last row in the DATABASECHANGELOG table. After setting the tag, you can use the rollback command to roll back all changes up to that tag.
The image below shows the DATABASECHANGELOG table structure. Running the command tag version1
applies the tag version1
to the last row in the DATABASECHANGELOG table. If you run rollback version1
command, it will roll back only createTable C
value.
Note: It is best practice to tag your changesets before running any other commands against your database.
Syntax
To run the tag
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 these properties in your command line.
Then run the tag
command:
liquibase tag --tag=myTag
Note: The --tag=myTag
syntax was added in Liquibase 4.4. If you use an older version, specify your tag as a positional argument: <command> myTag
.
Command parameters
CLI
Attribute
|
Definition |
Requirement |
--tag=<string>
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag . Positional format <command> <tag> deprecated in 4.4+.
|
Required
|
--url=<string>
|
The JDBC database connection URL. See Using JDBC URL in Liquibase.
|
Required
|
--add-row=<true|false>
|
Liquibase Pro only. If true , creates a new DATABASECHANGELOG row for the tag you're adding. If false , adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false .
Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.
|
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 |
--password=<string>
|
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 |
--username=<string>
|
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 |
Flow
Attribute
|
Definition |
Requirement |
cmdArgs: { tag: "<string>" }
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag . Positional format <command> <tag> deprecated in 4.4+.
|
Required
|
cmdArgs: { url: "<string>" }
|
The JDBC database connection URL. See Using JDBC URL in Liquibase.
|
Required
|
cmdArgs: { add-row: "<true|false>" }
|
Liquibase Pro only. If true , creates a new DATABASECHANGELOG row for the tag you're adding. If false , adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false .
Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.
|
Optional |
cmdArgs: { default-catalog-name: "<string>" }
|
Name of the default catalog to use for the database
connection
|
Optional |
cmdArgs: { 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 |
cmdArgs: { driver: "<string>" }
|
The JDBC driver class
|
Optional |
cmdArgs: { driver-properties-file: "<string>" }
|
The JDBC driver properties file
|
Optional |
cmdArgs: { password: "<string>" }
|
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 |
cmdArgs: { username: "<string>" }
|
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.properties
Attribute
|
Definition |
Requirement |
liquibase.command.tag: <string>
liquibase.command.tag.tag: <string>
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag . Positional format <command> <tag> deprecated in 4.4+.
|
Required
|
liquibase.command.url: <string>
liquibase.command.tag.url: <string>
|
The JDBC database connection URL. See Using JDBC URL in Liquibase.
|
Required
|
liquibase.command.addRow: <true|false>
liquibase.command.tag.addRow: <true|false>
|
Liquibase Pro only. If true , creates a new DATABASECHANGELOG row for the tag you're adding. If false , adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false .
Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.
|
Optional |
liquibase.command.defaultCatalogName: <string>
liquibase.command.tag.defaultCatalogName: <string>
|
Name of the default catalog to use for the database
connection
|
Optional |
liquibase.command.defaultSchemaName: <string>
liquibase.command.tag.defaultSchemaName: <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 |
liquibase.command.driver: <string>
liquibase.command.tag.driver: <string>
|
The JDBC driver class
|
Optional |
liquibase.command.driverPropertiesFile: <string>
liquibase.command.tag.driverPropertiesFile: <string>
|
The JDBC driver properties file
|
Optional |
liquibase.command.password: <string>
liquibase.command.tag.password: <string>
|
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 |
liquibase.command.username: <string>
liquibase.command.tag.username: <string>
|
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 |
JAVA_OPTS
Attribute
|
Definition |
Requirement |
JAVA_OPTS=-Dliquibase.command.tag=<string>
JAVA_OPTS=-Dliquibase.command.tag.tag=<string>
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag . Positional format <command> <tag> deprecated in 4.4+.
|
Required
|
JAVA_OPTS=-Dliquibase.command.url=<string>
JAVA_OPTS=-Dliquibase.command.tag.url=<string>
|
The JDBC database connection URL. See Using JDBC URL in Liquibase.
|
Required
|
JAVA_OPTS=-Dliquibase.command.addRow=<true|false>
JAVA_OPTS=-Dliquibase.command.tag.addRow=<true|false>
|
Liquibase Pro only. If true , creates a new DATABASECHANGELOG row for the tag you're adding. If false , adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false .
Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.
|
Optional |
JAVA_OPTS=-Dliquibase.command.defaultCatalogName=<string>
JAVA_OPTS=-Dliquibase.command.tag.defaultCatalogName=<string>
|
Name of the default catalog to use for the database
connection
|
Optional |
JAVA_OPTS=-Dliquibase.command.defaultSchemaName=<string>
JAVA_OPTS=-Dliquibase.command.tag.defaultSchemaName=<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 |
JAVA_OPTS=-Dliquibase.command.driver=<string>
JAVA_OPTS=-Dliquibase.command.tag.driver=<string>
|
The JDBC driver class
|
Optional |
JAVA_OPTS=-Dliquibase.command.driverPropertiesFile=<string>
JAVA_OPTS=-Dliquibase.command.tag.driverPropertiesFile=<string>
|
The JDBC driver properties file
|
Optional |
JAVA_OPTS=-Dliquibase.command.password=<string>
JAVA_OPTS=-Dliquibase.command.tag.password=<string>
|
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 |
JAVA_OPTS=-Dliquibase.command.username=<string>
JAVA_OPTS=-Dliquibase.command.tag.username=<string>
|
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 |
Environment variable
Attribute
|
Definition |
Requirement |
LIQUIBASE_COMMAND_TAG=<string>
LIQUIBASE_COMMAND_TAG_TAG=<string>
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag . Positional format <command> <tag> deprecated in 4.4+.
|
Required
|
LIQUIBASE_COMMAND_URL=<string>
LIQUIBASE_COMMAND_TAG_URL=<string>
|
The JDBC database connection URL. See Using JDBC URL in Liquibase.
|
Required
|
LIQUIBASE_COMMAND_ADD_ROW=<true|false>
LIQUIBASE_COMMAND_TAG_ADD_ROW=<true|false>
|
Liquibase Pro only. If true , creates a new DATABASECHANGELOG row for the tag you're adding. If false , adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false .
Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.
|
Optional |
LIQUIBASE_COMMAND_DEFAULT_CATALOG_NAME=<string>
LIQUIBASE_COMMAND_TAG_DEFAULT_CATALOG_NAME=<string>
|
Name of the default catalog to use for the database
connection
|
Optional |
LIQUIBASE_COMMAND_DEFAULT_SCHEMA_NAME=<string>
LIQUIBASE_COMMAND_TAG_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 |
LIQUIBASE_COMMAND_DRIVER=<string>
LIQUIBASE_COMMAND_TAG_DRIVER=<string>
|
The JDBC driver class
|
Optional |
LIQUIBASE_COMMAND_DRIVER_PROPERTIES_FILE=<string>
LIQUIBASE_COMMAND_TAG_DRIVER_PROPERTIES_FILE=<string>
|
The JDBC driver properties file
|
Optional |
LIQUIBASE_COMMAND_PASSWORD=<string>
LIQUIBASE_COMMAND_TAG_PASSWORD=<string>
|
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 |
LIQUIBASE_COMMAND_USERNAME=<string>
LIQUIBASE_COMMAND_TAG_USERNAME=<string>
|
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 |
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 Community 4.9.1 by Liquibase
Successfully tagged 'DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev'
Liquibase command 'tag' was executed successfully.
Related links