liquibase 迁移失败,而 dropColumn 布尔变量

liquibase migration failed while dropColumn boolean variable

我正在使用 Liquibase 链接数据库 (H2) 更改,最近我面临删除不必要的列迁移异常: Caused by: org.h2.jdbc.JdbcSQLException: View "ALTER TABLE PUBLIC.CE_SOME_TABLE DROP COLUMN some_column" is invalid: "Column ""SOME_TABLE .SOME_COLUMN"" not found [42122-190]"; SQL statement: ALTER TABLE PUBLIC.CE_SOME_TABLE DROP COLUMN some_column[90109-190]

我试过以下方法:

  1. 检查我的数据库是否真的找到这样的列:

select column_name from information_schema.columns where table_name='ce_some_table';

这表明 table

中的其他列中存在这样的列名
  1. 试图在 liquibase 中编写 SQL 语句:

<sql>ALTER TABLE ce_some_table DROP COLUMN some_column;</sql>

没有做作业

  1. 试图重命名变量(认为数据库元数据已兑现):

    <renameColumn catalogName="some_catalog" columnDataType="boolean" newColumnName="some_column2" oldColumnName="some_column" remarks="A Boolean" schemaName="public" tableName="CE_SOME_TABLE"/>

然后删除更新的专栏:

<dropColumn tableName="CE_SOME_TABLE" columnName="some_column2"/>

也没有工作

  1. 曾尝试从其他 table 中删除其他布尔列(其他 table 中有 +20 个)- 没有成功
  2. 曾尝试删除其他数据类型的列 - 它有效(但不适用于布尔值)

我接下来可以尝试的任何建议?

我检查了区分大小写,所有内容都匹配,但也许我没有看到所有 tables

中的内容

提前感谢您的建议或查明原因

更新: 在删除 some_column 后的同一个 chainSet 中,我修改了具有 some_column 变量

的 VIEW table

changeSet 包括修改 SOME_TABLE,删除 some_column

然后在同一个 changeSet 中,我修改了 VIEW table,它具有旧的 some_column 值,因为它不再需要了

我得到异常的原因是因为当从 table 中删除列时,视图 table 仍然持有它并且没有让它删除

我是如何修复它的:

通过移除 some_column 变量

首次更改视图 table

然后从 SOME_TABLE

中删除 some_column