我在liquibase中遇到一个问题,我无法在postgres db中删除索引。 liquibase报告的错误是
mmddyyyy
我已经使用psql连接到数据库并验证了索引确实存在(如果在没有drop index节的情况下运行changeset)
Unexpected error running Liquibase: ERROR: index "value_idx" does not exist [Failed SQL: DROP INDEX VALUE_IDX]
运行Liquibase updateSQL时,它生成的\d data
Table "someschema.data"
Column | Type | Modifiers
--------+-----------------------+-----------
value | character varying(36) | not null
Indexes:
"value_idx" UNIQUE, btree (value)
语句为:
DROP INDEX
我的更改日志如下:
DROP INDEX VALUE_IDX;
我也尝试了以下dropindex节:
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
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-3.1.xsd">
<preConditions>
<dbms type="postgresql"/>
</preConditions>
<changeSet author="beresfordt" id="1">
<sql>
CREATE SCHEMA SomeSchema;
</sql>
<createTable tableName="data" schemaName="someschema">
<column name="value" type="varchar(36)">
<constraints nullable="false"/>
</column>
</createTable>
<createIndex indexName="VALUE_IDX" schemaName="someschema"
tableName="data" unique="true">
<column name="value" type="varchar(36)"/>
</createIndex>
<dropIndex catalogName="someschema"
schemaName="someschema"
tableName="data"
indexName="VALUE_IDX"/>
</changeSet>
</databaseChangeLog>
但是我得到了类似的错误:
<dropIndex catalogName="someschema"
schemaName="someschema"
tableName="data"
indexName="someschema.VALUE_IDX"/>
我正在使用Liquibase:3.4.2和Postgres:9.5.1
编辑:
尝试使用3.3.0并且有效。
在liquibase的jira中引发了Bug:https://liquibase.jira.com/browse/CORE-2677
答案 0 :(得分:0)
这是由于在撰写Liquibase的3.4.1和3.4.2时存在的错误造成的。
这已在Liquibase jira上提出:https://liquibase.jira.com/browse/CORE-2677
编辑:
这似乎已经解决了当前的问题:'03b020ab895eb02c0e0aba90461cb7c628fa033f'
编辑2:
从Liquibase更新:
修复应该是3.5