springboot集成flowable踩坑记录

2,039 阅读2分钟

菜鸟一枚

最近公司其它团队在搞工作流,以前一直听说,没有实际用,于是准备私下搞个demo玩。下边是踩坑记录 这个是官方的用户手册,我根据它的集成介绍,引入maven后却一直报错 tkjohn.github.io/flowable-us…

环境如下 java8, springboot2.7.8,flowable6.8, mysql8.0 idea空项目

配置文件如下:

flowable:
  # 1. false: 默认值,Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常
  # 2. true: 启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表
  # 3. create_drop: 启动时自动创建表,关闭时自动删除表
  # 4. drop_create: 启动时,删除旧表,再创建新表
  # 设置为 false,可通过 https://github.com/flowable/flowable-sql 初始化
  database-schema-update: true 

  async-executor-activate: false

配置文件具体都是啥意思可以在用户手册中找到。

报错信息如下: Error creating bean with name 'appRepositoryServiceBean' defined in... 还有部分报错是说 数据库表 不存在

一番搜索,有人说这个flowable创建表时表明都是大写,跟数据库的不匹配所以导致报错。

而mysql8安装时有个字体大小写敏感设置: lower-case-table-names

我的mysql是安装在centos7.8中.此设置的值默认为0。

而且在mysql8.0中这个设置必须在安装时就设置好,想去修改必须重装mysql。

好在我的mysql部署在docker中,重装很快 重装时注意:

docker init 语句中 增加 --lower-case-table-names=1

docker-compose 中 在 command 后边 追加 --lower-case-table-names=1

-v 映射数据时一定要用新的文件夹,否则mysql会因为data dictionary不匹配无法启动

比如你原来映射的地址时 /opt/data:/var/lib/mysql

那么重新生成容器时需要修改地址为其它 /opt/data2:/var/lib/mysql

最后才启动成功。开始愉快的玩耍