Flowable启动报错problem during schema upgrade&&couldn‘t upgrade db schema:

狄宜然
2023-12-01

1.错误信息

problem during schema upgrade, statement alter table ACT_RU_VARIABLE add column SCOPE_ID_ varchar(255)
java.sql.SQLSyntaxErrorException: Duplicate column name 'SCOPE_ID_'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'flowableAppEngine': FactoryBean threw exception on object creation; nested exception is org.flowable
.common.engine.api.FlowableException: couldn't upgrade db schema: alter table ACT_RU_VARIABLE 
add column SCOPE_ID_ varchar(255)

原因
启动Flowable的时候数据库里面已经有flowable相关的数据表。但是项目还是去创建相关的数据表。原因是flowable运行后生成的表名都是大写。而MySQL检索的时候是区分大小写的。然后执行时发现2张表名一样,导致出现问题。
2.Mysql设置lower_case_table_names参数
lower_case_table_names 是mysql设置大小写是否区分和比较的参数。lower_case_table_names 默认为 0

0:表名字是存储为给定的大小,区分大小写的。
1:表名字存储在磁盘是小写的,比较的时候不区分大小写。
2:存储的时候是按照给定的大小写存储的,比较的时候是按照小写的方式比较。

查询参数信息:

show variables like 'lower_case_table_names';
select @@lower_case_table_names;

修改值:
1、修改文件my.cnf ,设置 lower_case_table_names = 1
linux如何设置my.cnf文件

查找Mysqld的安装目录
which mysqld
/usr/sbin/mysqld --help|grep 'my.cnf'
编辑my.cnf文件
lower_case_table_names = 1
重启MySQL

2、命令修改

set global lower_case_table_names =1;
 类似资料: