尝试将我的数据库从 Oracle 迁移到 Postgres 后,Liquibase 在设置锁定时遇到问题,因为 LOCKED 列从
NUMBER(1)
转换为 int4
并且更新语句使用 boolean
,它在 Oracle 中有效,但在 Postgres 中无效:
UPDATE databasechangeloglock SET LOCKED = TRUE, LOCKEDBY = '<<<machine name>>>', LOCKGRANTED = '2024-11-01 17:17:38.911' WHERE ID = 1 AND LOCKED = FALSE
这会导致以下错误:
ERROR: operator does not exist: integer = boolean
我的问题是唯一的解决方案是将 Postgres 中的 LOCKED 列转换为
boolean
还是可以在 Liquibase 中配置该语句?
您需要手动转换它,Liquibase 不会为您修复它。