为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8 1-1-190-21.04
【操作系统】:不重要,与标题问题无关
【CPU】: 不重要,与标题问题无关
【问题描述】*:
环境:
我们首先从 MySQL 迁移到 dm,然后加入多数据源。需要注意的是,我们的默认数据源是 master,但是 flowable 相关的表在其中一个 slave。
由于之前做的迁移方案,直接修改了 flowable 的部分源码,导致在设置数据源和配置时无效,启动失败,直接查询了act_ge_property,结果必然不存在(无效的表名或视图)。
之后我尝试单独配一个数据库指定 flowable 的数据源,结果依然和上次一样,目前比较迷茫,希望有老师帮忙解答一二,感谢!
附:
已知问题:使用 https://blog.csdn.net/TangBoBoa/article/details/130392495 该教程的方式非多数据源下可以使用,url 连接参数也不需要compatibleMode=Oracle,若后续引入多数据源则会引发些许问题。
MySQL 到 dm 使用官方的 dts,结构都可正常迁移,但是数据迁移错误,使用的客户端版本信息见上方描述。目前使用手动导入,有解决的小伙伴可以评论留言呀。
可以参考https://blog.csdn.net/TangBoBoa/article/details/130392495或其他类似的博客,在非多数据源下好使(多数据源下也可能是我打开方式不对,频频报错)
除了上面的方式,也可以使用 dm 提供的 oracle 兼容模式链接(推荐方案),即 jdbc:dm://ip:port/schema=your_schema&compatibleMode=Oracle。使用此方式 + 修改 flowable 的部分源码即可实现 flowable 与达梦的适配。
liquibase.datatype.core.BooleanType
、org.flowable.dmn.engine.impl.db.DmnDbSchemaManager
、resources.org.flowable.dmn.db.liquibase.customer-flowable-dmn-db-changelog.xml
(注意此步把 dbms="dm"
去掉) 两个文件,前者让 dm 支持 boolean,后者支持 dm 重命名。非多数据源以上的几步基本可以完成适配。多数据源情况下,可以自行实现 EngineConfigurationConfigurer<SpringAppEngineConfgiuration> 接口,在里面切换到 flowable 使用的数据源即可。
在 Flowable 的配置文件中,指定达梦的方言。一般在 Spring Boot 项目里,可以在 application.yml 或者 application.properties 中进行如下配置:
flowable:
database-schema-update: true
database-type: dm8
如果使用 application.properties,则配置如下:
flowable.database-schema-update=true
flowable.database-type=dm8