mengweijin / db-migration

Flyway、Liquibase 扩展支持达梦(DM)数据库、南大通用(GBase 8s)数据库,并支持 Flowable 工作流。
https://home.aday.fun
Apache License 2.0
22 stars 4 forks source link

重启项目报错 #8

Open zhuzhuPink opened 1 month ago

zhuzhuPink commented 1 month ago

首次启动时没有问题,再次启动时就会报错,跟踪源码发现是使用oracle的查询方法去查询ALL_TAB_COLS表时,没有查询到FLW_EV_DATABASECHANGELOG的表信息导致的空指针,大佬有没有解决思路?日志文件如下 log.txt image image

zhuzhuPink commented 1 month ago

具体报错行数是StandardChangeLogHistoryService类的128行,由于FLW_EV_DATABASECHANGELOG表没有查询出列信息导致的空指针错误。

mengweijin commented 1 month ago

Hi @zhuzhuPink : 看日志,我猜你用的 liquibase 4.9.1 + flowable 6.7.2 + spring boot 2.x 的组合。

我尝试用 db-migration-dm 当前最新版本 1.1.9,flowable 在 spring boot 2 环境下测试,确实有问题(已更新文档说明,参考:达梦:【liquibase 低版本】中如何使用?

但不是你日志里那个,因此,我没有复现出来你的问题。我用这个示例工程修改版本测试的:https://github.com/mengweijin/db-migration/tree/master/demo/liquibase-dm-spring-boot2

请提供一下你使用的环境信息,以便复现该问题: 1、db-migration-dm 版本; 2、spring boot 版本; 3、使用的 liquibase 版本; 4、其他补充说明(如果你觉得有影响的话)。如配置、其他依赖包、dm 数据库驱动包信息等。

zhuzhuPink commented 1 month ago

spring boot 2.4.4 ,liquibase 4.9.1, flowable 6.7.2 , dm驱动8.1.3.140,数据库连接配置oracle模式

zhuzhuPink commented 1 month ago

昨天跟踪源码和数据库发现是all_cons_columns和all_constraints表中没有FLW_EV_DATABASECHANGELOG的约束信息,然后查询的sql是内连接,导致查不出数据。改成左连接后正常查询,同理有一处sql 查询ALL_COL_COMMENTS也是内连接,改为左连接后启动正常

mengweijin commented 1 month ago

spring boot 2.4.4 ,liquibase 4.9.1, flowable 6.7.2 , dm驱动8.1.3.140,数据库连接配置oracle模式

不知道你用的 db-migration-dm 版本是多少,昨晚我用如下版本都可以正常多次顺利启动:

文档参考:达梦:【liquibase 低版本】中如何使用?

因此,重启报错的问题依然没有复现,如果你的环境依然有问题,可以提供个 demo 我看看。