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]
我试过以下方法:
- 检查我的数据库是否真的找到这样的列:
select column_name from information_schema.columns where table_name='ce_some_table';
这表明 table
中的其他列中存在这样的列名
- 试图在 liquibase 中编写 SQL 语句:
<sql>ALTER TABLE ce_some_table DROP COLUMN some_column;</sql>
没有做作业
试图重命名变量(认为数据库元数据已兑现):
<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"/>
也没有工作
- 曾尝试从其他 table 中删除其他布尔列(其他 table 中有 +20 个)- 没有成功
- 曾尝试删除其他数据类型的列 - 它有效(但不适用于布尔值)
我接下来可以尝试的任何建议?
我检查了区分大小写,所有内容都匹配,但也许我没有看到所有 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
我正在使用 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]
我试过以下方法:
- 检查我的数据库是否真的找到这样的列:
select column_name from information_schema.columns where table_name='ce_some_table';
这表明 table
中的其他列中存在这样的列名- 试图在 liquibase 中编写 SQL 语句:
<sql>ALTER TABLE ce_some_table DROP COLUMN some_column;</sql>
没有做作业
试图重命名变量(认为数据库元数据已兑现):
<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"/>
也没有工作
- 曾尝试从其他 table 中删除其他布尔列(其他 table 中有 +20 个)- 没有成功
- 曾尝试删除其他数据类型的列 - 它有效(但不适用于布尔值)
我接下来可以尝试的任何建议?
我检查了区分大小写,所有内容都匹配,但也许我没有看到所有 tables
中的内容提前感谢您的建议或查明原因
更新:
在删除 some_column
后的同一个 chainSet 中,我修改了具有 some_column
变量
changeSet 包括修改 SOME_TABLE
,删除 some_column
然后在同一个 changeSet 中,我修改了 VIEW table,它具有旧的 some_column
值,因为它不再需要了
我得到异常的原因是因为当从 table 中删除列时,视图 table 仍然持有它并且没有让它删除
我是如何修复它的:
通过移除 some_column
变量
然后从 SOME_TABLE
some_column