alterDynamicTable alterClustering
Modifies the clustering key configuration for a dynamic table.
Known limitations:
This change type does not support automatic rollback.
Snowflake snapshots created with Liquibase Secure 5.1 are incompatible with earlier versions due to enhanced object type detection for TABLES and VIEWS. Regenerate all snapshots with 5.1 after upgrading to avoid false differences in diff and diff-changelog operations.
Available attributes
Attribute | Type | Description | Required |
|---|---|---|---|
| String | Name of the catalog (database) containing the table | No |
| String | Name of the schema containing the table | No |
| String | Name of the dynamic table to alter | Yes |
| Boolean | Only execute if the table exists | No |
alterClustering nested attributes
Attribute | Type | Description | Required |
|---|---|---|---|
| String | New clustering key (comma-separated columns) | No* |
| Boolean | If true, suspends automatic reclustering | No* |
| Boolean | If true, resumes automatic reclustering | No* |
| Boolean | If true, drops the clustering key | No* |
*Exactly one of these options must be specified.
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:pro-snowflake="http://www.liquibase.org/xml/ns/pro-snowflake"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
http://www.liquibase.org/xml/ns/pro-snowflake
http://www.liquibase.org/xml/ns/pro-snowflake/liquibase-pro-snowflake-latest.xsd">
<!-- Set clustering key -->
<changeSet id="set-clustering-key" author="examples">
<pro-snowflake:alterDynamicTable tableName="ANALYTICS_SUMMARY">
<pro-snowflake:alterClustering clusterBy="REPORT_DATE, REGION"/>
</pro-snowflake:alterDynamicTable>
</changeSet>
<!-- Suspend reclustering -->
<changeSet id="suspend-reclustering" author="examples">
<pro-snowflake:alterDynamicTable tableName="ANALYTICS_SUMMARY">
<pro-snowflake:alterClustering suspendRecluster="true"/>
</pro-snowflake:alterDynamicTable>
</changeSet>
<!-- Resume reclustering -->
<changeSet id="resume-reclustering" author="examples">
<pro-snowflake:alterDynamicTable tableName="ANALYTICS_SUMMARY">
<pro-snowflake:alterClustering resumeRecluster="true"/>
</pro-snowflake:alterDynamicTable>
</changeSet>
<!-- Drop clustering key -->
<changeSet id="drop-clustering-key" author="examples">
<pro-snowflake:alterDynamicTable tableName="ANALYTICS_SUMMARY">
<pro-snowflake:alterClustering dropClusteringKey="true"/>
</pro-snowflake:alterDynamicTable>
</changeSet>
</databaseChangeLog>