Skip to content

达梦数据库

TIP

以下资料均在私服flowable-dm项目中,如有需要请自行下载。

WARNING

因本人设备有限,只有arm架构的mac电脑,其他设备请自行研究处理。本人电脑上成功运行基于以下设备/资料:

DANGER

  • 进行下面步骤之前请确保达梦数据库已成功安装!!!并且用BladeX可成功连接。
  • 请确保插件成功升级到了1.7.1版本,不然请自行修改ACT_DE_MODEL和ACT_DE_MODEL_HISTORY中的xml字段为model_xml。并参考Saber的提交。
  • 删除数据库中ACT_FLW_开头的所有表。

1、让flowable识别DM DBMS

确保application.yaml中的flowable配置database-schema-update为true。

选择flowable版本进行以下操作,mvn clean,启动项目。flowable会自动建表。

flowable7.1.0+
  • 复制flowable源码中的org.flowable.common.engine.impl.util.DbUtil类到你的项目本体,路径包名保持一致,以达到覆盖的目的。
  • 在DbUtil类中的getDefaultDatabaseTypeMappings方法中添加最后一行
java
...
databaseTypeMappings.setProperty("DB2/2", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty("DB2 UDB AS400", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty(PRODUCT_NAME_CRDB, DATABASE_TYPE_COCKROACHDB);
databaseTypeMappings.setProperty("DM DBMS", DATABASE_TYPE_ORACLE); 
flowable7.0.1
  • 复制flowable源码中的org.flowable.common.engine.impl.AbstractEngineConfiguration类到你的项目本体,路径包名保持一致,以达到覆盖的目的。boot到根目录,cloud到blade-workflow根目录。
  • 在AbstractEngineConfiguration类中的getDefaultDatabaseTypeMappings方法中添加最后一行
java
...
databaseTypeMappings.setProperty("DB2/2", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty("DB2 UDB AS400", DATABASE_TYPE_DB2);
databaseTypeMappings.setProperty(PRODUCT_NAME_CRDB, DATABASE_TYPE_COCKROACHDB);
databaseTypeMappings.setProperty("DM DBMS", DATABASE_TYPE_ORACLE); 

DANGER

有时不会自动建表,有兴趣的自己搜索研究,小概率玄学问题。或者直接去github仓库找建表sql。套壳的哪个就用哪个(如达梦:Oracle)。链接

2、修改flowable配置

建完表后再次启动程序,flowable每次都会比对版本,但由于不知道什么原因达梦jdbc驱动中的实现类获取不到Schema,所以必须关掉flowable的启动检查。

此处设置为none会爆红,因为none不在flowbale规定的几个参数内。修改完后再次启动flowable就不会检查数据库版本了。

3、在达梦数据库中执行插件doc中的dm sql