第一步:
在nacos中对 databaseSchemaUpdate属性进行设置:数据库更新策略,其取值有以下四个:
flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。(生产环境常用)
true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常用)
create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。(单元测试常用)
drop-create: 在activiti启动时删除原来的旧表,然后再创建新表(不需要手动关闭引擎)。
第二步:
如果第一步还没有生效,就检查下数据库版本。
设置nullCatalogMeansCurrent=true,表示mysql默认当前数据库操作,在mysql-connector-java 5.xxx该参数默认为true,在6.xxx以上默认为false,因此需要设置nullCatalogMeansCurrent=true。
第三步:如果启动时还报错
说明是脚本有BUG,需要更新两个表的结构,执行DDL语句
alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255) DEFAULT NULL;
alter table ACT_RE_DEPLOYMENT add column VERSION_ varchar(255) DEFAULT NULL;
至此,所以问题应该是全部涵盖了。
希望对大家有所帮助!!!