springboot3.x 整合 activiti8.1.0 创建数据表时少了一张历史表 ACT_HI_IDENTITYLINK

555 阅读1分钟

springboot3.x 整合 activiti8.1.0 创建数据表时少了一张历史表 ACT_HI_IDENTITYLINK ,报错如下:

image.png

原因:mysql并不提供 varbinary(max) 的写法,

PBXELER)MM7JYI5}J0DHPQV.png

image.png

解决办法:

1、提升 activiti 版本到 8.2.0 以上

github 上作者是在 8.2.0 版本才合并修改的代码,所以想让 activiti 自动创建表,需要将 activiti8.1.0 提升到 activiti8.2.0 版本。需要注意的是,如果使用 8.2.0 版本,java 版本最低必须要 21。

2、手动创建表

可以自己创建一张表,sql语句如下:

create table ACT_HI_IDENTITYLINK ( 
ID_ varchar(64), 
GROUP_ID_ varchar(255), 
TYPE_ varchar(255), 
USER_ID_ varchar(255), 
TASK_ID_ varchar(64), 
PROC_INST_ID_ varchar(64), 
DETAILS_ varbinary(255), 
primary key (ID_) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin

或者如下:

create table ACT_HI_IDENTITYLINK ( 
ID_ varchar(64), 
GROUP_ID_ varchar(255), 
TYPE_ varchar(255), 
USER_ID_ varchar(255), 
TASK_ID_ varchar(64), 
PROC_INST_ID_ varchar(64), 
DETAILS_ longblob, 
primary key (ID_) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin

注:作者推荐使用longblob数据类型,并且在新的版本中也是使用此类型。

image.png