changelogSyncToTagSQL command

changelogSyncToTagSQL is a helper command that produces the raw SQL that Liquibase would run when using the changelogSyncToTag command to mark all undeployed changesets associated with the specified tag as executed in your database.

Uses

The changelogSyncToTagSQL command is typically used when you want to inspect the SQL Liquibase will use to baseline a new database environment.

It is best practice to inspect any SQL that Liquibase would run when using the changelogSyncToTag command so you can review any changes the command would make to your database before running it. The changelogSyncToTag command marks all changesets starting with the first changeset at the top of the changelog file and moving down to the changeset up to and including the tag.

Note: If you don’t have any tag specified in your changelog file, add it by using the tagDatabase Change Type as follows:

<changeSet id="13.1" author="liquibase">
<tagDatabase tag="version_2.0"/>
</changeSet>

Running the changelogSyncToTagSQL command

Before running the changelogSyncToTagSQL command, you can specify the driver, classpath, and URL in your liquibase.properties file. For more information, see Creating and configuring a liquibase.properties file. You can also specify these properties in your command line.

Next, run the changelogSyncToTagSQL command:

liquibase --changelogFile=mychangelog.xml changelogSyncToTagSQL version1

Note: Enter the name of the changelog and the tag that you want to use in place of mychangelog.xml and version1.

changelogSyncToTagSQL global attributes

Attribute Definition Requirements
--changeLogFile The root changelog Required
--url The JDBC database connection URL Required
--username The database username Required*
--password The database password Required*
--outputFile* The attribute that specifies the file path to where the changelogSyncToTag SQL will be written Optional

*If not specified, the changelogSyncToTagSQL output goes to STDOUT.

Note: The username and password attributes are not required for connections and systems which use alternate means of authentication.

changelogSyncToTagSQL command attributes

Attribute Definition Requirements
tag The tag you can add to changesets to determine which changesets in the changelog to evaluate based on their tags. Required

changelogSyncToTagSQL example output

When successful, the changelogSyncToTagSQL command produces the following output:

Liquibase Pro 4.3.2 by Datical licensed to support until Wed Sep 22 23:59:59 CDT 2021
####################################################
##   _     _             _ _                      ##
##  | |   (_)           (_) |                     ##
##  | |    _  __ _ _   _ _| |__   __ _ ___  ___   ##
##  | |   | |/ _` | | | | | '_ \ / _` / __|/ _ \  ##
##  | |___| | (_| | |_| | | |_) | (_| \__ \  __/  ##
##  \_____/_|\__, |\__,_|_|_.__/ \__,_|___/\___|  ##
##              | |                               ##
##              |_|                               ##
##                                                ##
##  Get documentation at docs.liquibase.com       ##
##  Get certified courses at learn.liquibase.com  ##
##  Free schema change activity reports at        ##
##      https://hub.liquibase.com                 ##
##                                                ##
####################################################
Starting Liquibase at 11:28:52 (version 4.3.2 #44 built at 2021-03-23 14:01+0000)
-- *********************************************************************
-- SQL to add all changesets to database history table
-- *********************************************************************
-- Change Log: dbchangelog.xml
-- Ran at: 3/29/21 11:28 AM
-- Against: SCHEMA1@jdbc:oracle:thin:@localhost:1521:ORCL
-- Liquibase version: 4.3.2
-- *********************************************************************

-- Lock Database
UPDATE SCHEMA1.DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'WIN-20E107KB4TN (172.30.3.88)', LOCKGRANTED = TO_TIMESTAMP('2021-03-29 11:28:53.632', 'YYYY-MM-DD HH24:MI:SS.FF') WHERE ID = 1 AND LOCKED = 0;

-- Release Database Lock
UPDATE SCHEMA1.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;

Liquibase command 'changelogSyncToTagSQL' was executed successfully.