如何在Liquibase YAML中创建包含函数的多列联合索引?
错误原因
Liquibase默认会对索引列配置中的name字段做纯列名校验,LOWER(id)属于带函数的计算表达式,不能直接作为普通列名解析,因此触发报错。
正确YAML配置
- createIndex: indexName: example_index tableName: table_test unique: true columns: - column: name: LOWER(id) computed: true - column: name: author - column: name: name
配置说明
- 新增
unique: true配置,对应你原始SQL中的UNIQUE约束,会生成唯一索引 - 给计算表达式对应的列配置加上
computed: true属性,告知Liquibase该字段是计算表达式,不需要做普通列名校验,即可解决报错 - 注意YAML语法的缩进要求:所有子属性需要比父节点多2个空格缩进,短横线与后续配置内容之间需要保留空格,避免配置解析失败
内容的提问来源于stack exchange,提问作者Suule
相关产品推荐
相关产品推荐

