Liquibase创建索引报错:column 'name'为索引列必填项
问题原因及修复方案
你的Liquibase变更集报错的核心原因是**<column>标签的用法不符合Liquibase的XML语法规范**:
Liquibase要求在定义索引列时,必须通过name属性指定列名,而不能将列名直接写在<column>标签的文本内容里。你当前的写法<column>plan_date</column>是错误的,系统无法识别这个列的名称,因此抛出"column 'name' is required for all columns in an index"的错误。
正确的变更集代码
<createIndex tableName="plan" indexName="IX_plan_date"> <column name="plan_date"/> </createIndex>
或者也可以使用闭合标签的写法(效果一致):
<createIndex tableName="plan" indexName="IX_plan_date"> <column name="plan_date"></column> </createIndex>
这个规则是Liquibase XML语法的强制要求,所有涉及索引列的定义都必须遵循,确保系统能正确识别要创建索引的目标列。
内容的提问来源于stack exchange,提问作者camilajenny
相关产品推荐
相关产品推荐

