注册

第二次执行liquibase,报数据库表DATABASECHANGELOG已存在的问题

伟仔 2023/09/05 1211 0

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:centos7
【CPU】:x86
【问题描述】*:

现象

第二次启动适配过liquibase的项目时,启动报错,报数据库表DATABASECHANGELOG已存在

原因

该问题是由于schema名称存在下划线时,liquibase查询数据库表快照时使用escapeForLike方法将下划线转义。但是达梦数据库驱动对转义字符的处理有问题,查询数据库时直接带入了转义用的斜杠,导致查询DATABASECHANGELOG表不存在。从而让liquibase重复执行了创建DATABASECHANGELOG的步骤,最终导致liquibase启动失败。

具体参见:liquibase.snapshot.ResultSetCache.SingleResultSetExtractor#fastFetchQuery方法

希望官方可以尽快更新驱动

回答 0
暂无回答
扫一扫
联系客服