我通过Terraform管理雪花桌。
在现有表中添加新列时,我希望保留列顺序。默认的terraform行为是在DDL create表达式中追加新列。
举个例子:我首先创建一个表
resource "snowflake_table" "table" {
database = snowflake_schema.schema.database
schema = snowflake_schema.schema.name
name = "table"
column {
name = "id"
type = "int"
}
column {
name = "identity"
type = "NUMBER(38,0)"
}
column {
name = "final"
type = " VARCHAR(100)"
}
}terraform给出了以下DDL表达式。
create or replace TABLE table (
"id" int,
"identity" NUMBER(38,0),
"final" VARCHAR(100) )如果我想添加一个新列,我将terraform脚本修改为如下所示:
resource "snowflake_table" "table" {
database = snowflake_schema.schema.database
schema = snowflake_schema.schema.name
name = "table"
column {
name = "id"
type = "int"
}
column {
name = "test"
type = " VARCHAR(100)"
}
column {
name = "identity"
type = "NUMBER(38,0)"
}
column {
name = "final"
type = "VARCHAR(100)"
}
}我希望测试列位于第二位。
但是Terraform生成DDL表达式。
create or replace TABLE table (
"id" int,
"identity" NUMBER(38,0) ,
"final" VARCHAR(100),
"test" VARCHAR(100) )因为桌子已经就位了
但我需要:
create or replace TABLE table (
"id" int,
"identity" NUMBER(38,0) ,
"test" VARCHAR(100),
"final" VARCHAR(100))我有一些代码生成的sql语句,依赖于列顺序,我希望sql列顺序与它们来自的csv文件相同。
目前,我必须销毁表资源来创建一个新的表资源。我想知道是否有办法改变附加的默认行为?
发布于 2022-11-07 21:37:18
雪花不支持指定添加列的位置。这就是Terraform不能在中间添加列的原因。
https://stackoverflow.com/questions/74345148
复制相似问题