Flowable 6.6.0重复创建ACT_RU_IDENTITYLINK表致Spring Boot项目war包部署失败
问题根因
Flowable 6.6.0启动时默认会自动校验数据库表结构,当schema更新策略配置错误、数据库大小写敏感规则不匹配、表元数据读取权限不足、schema配置不匹配时,就会出现表实际已存在但Flowable识别不到,重复触发建表逻辑的错误。
解决方案
- 调整Flowable自动建表策略
在Spring Boot配置文件(application.yml或application.properties)中修改Flowable的数据库schema更新策略,生产环境配置为none关闭自动建表,开发测试环境可配置为update仅做表结构增量更新:
properties配置示例:
yaml配置示例:flowable.database-schema-update=noneflowable: database-schema-update: none - 修正数据库大小写敏感配置
若使用MySQL数据库,确认库的lower_case_table_names参数和表名大小写规则匹配:Linux环境MySQL默认表名大小写敏感,Windows默认不敏感,若Flowable识别的表名大小写和库中实际表名不一致,会出现识别失败的问题,可统一表名大小写或者调整lower_case_table_names=1(修改后需重启数据库生效)。 - 校验数据库账号权限
确认Flowable使用的数据库账号拥有information_schema系统表的读取权限,权限不足时Flowable无法读取已存在的表列表,会误判表不存在触发建表操作。 - 明确指定数据库schema
若使用Oracle、PostgreSQL等带schema隔离的数据库,需在配置中明确指定Flowable使用的schema,避免Flowable默认查询公共schema导致表识别失败:flowable.database-schema=你的业务schema名称 - 排查依赖冲突
检查项目依赖中是否存在多个不同版本的Flowable相关依赖,版本冲突会导致表校验逻辑异常,统一所有Flowable依赖的版本为6.6.0即可。
内容的提问来源于stack exchange,提问作者faux
相关产品推荐
相关产品推荐

