如何在Snowflake schemachange的change_history表中记录同版本不同脚本
解决Snowflake Schemachange同版本多脚本记录问题
schemachange默认通过版本号+变更集(change-set)+环境的组合判断变更是否已执行,要让两个独立脚本以同版本V1.1.1留存到change_history表,可按以下方法操作:
指定不同的变更集标识
执行第二个脚本时,通过--change-set参数给它分配和第一个脚本不同的变更集名称。比如:
第一个脚本执行命令:schemachange -f ./path/to/first_script_dir -a your_account -u your_user -r your_role -w your_warehouse -d your_db -s your_schema --change-set "base_features"第二个独立脚本执行命令:
schemachange -f ./path/to/second_script_dir -a your_account -u your_user -r your_role -w your_warehouse -d your_db -s your_schema --change-set "independent_addons"这样schemachange会将同版本但不同变更集的脚本视为独立变更,都会写入
change_history表,你可通过表中的CHANGE_SET字段区分两个脚本。给脚本文件名加唯一描述后缀
保持版本号为V1.1.1的同时,给两个脚本的文件名添加不同的描述后缀,比如第一个叫V1.1.1__user_table_init.sql,第二个叫V1.1.1__audit_log_setup.sql。配合变更集参数,能更明确地避免识别冲突,强化两个脚本的独立性。
内容的提问来源于stack exchange,提问作者Mark H
相关产品推荐
相关产品推荐

