Activiti重复建表bug

故障码

  故障码如下:

2019-11-11 16:05:27.318  INFO 19208 --- [           main] o.activiti.engine.impl.db.DbSqlSession   : performing create on history with resource org/activiti/db/create/activiti.mysql.create.history.sql
2019-11-11 16:05:27.338  INFO 19208 --- [           main] o.activiti.engine.impl.db.DbSqlSession   : Found MySQL: majorVersion=5 minorVersion=7
2019-11-11 16:05:27.643  INFO 19208 --- [           main] o.activiti.engine.impl.db.DbSqlSession   : performing create on identity with resource org/activiti/db/create/activiti.mysql.create.identity.sql
2019-11-11 16:05:27.643  INFO 19208 --- [           main] o.activiti.engine.impl.db.DbSqlSession   : Found MySQL: majorVersion=5 minorVersion=7
2019-11-11 16:05:27.708 ERROR 19208 --- [           main] o.activiti.engine.impl.db.DbSqlSession   : problem during schema create, statement alter table ACT_ID_MEMBERSHIP 
add constraint ACT_FK_MEMB_GROUP 
foreign key (GROUP_ID_) 
references ACT_ID_GROUP (ID_)

java.sql.SQLIntegrityConstraintViolationException: Can't write; duplicate key in table '#sql-345e_4030'
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:782) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:666) ~[mysql-connector-java-8.0.16.jar:8.0.16]
	at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2958) ~[druid-1.1.10.jar:1.1.10]
	at com.alibaba.druid.filter.FilterAdapter.statement_execute(FilterAdapter.java:2473) ~[druid-1.1.10.jar:1.1.10]
	at com.alibaba.druid.filter.FilterEventAdapter.statement_execute(FilterEventAdapter.java:188) ~[druid-1.1.10.jar:1.1.10]
	at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2956) ~[druid-1.1.10.jar:1.1.10]
	at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.execute(StatementProxyImpl.java:147) ~[druid-1.1.10.jar:1.1.10]
	at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:619) ~[druid-1.1.10.jar:1.1.10]
	at org.activiti.engine.impl.db.DbSqlSession.executeSchemaResource(DbSqlSession.java:1311) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.db.DbSqlSession.executeSchemaResource(DbSqlSession.java:1231) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.db.DbSqlSession.executeMandatorySchemaResource(DbSqlSession.java:1016) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.db.DbSqlSession.dbSchemaCreateIdentity(DbSqlSession.java:985) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:1087) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1422) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:27) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47) [activiti-spring-5.22.0.jar:5.22.0]
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.0.5.RELEASE.jar:5.0.5.RELEASE]
	at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45) [activiti-spring-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:80) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:613) [activiti-engine-5.22.0.jar:5.22.0]
	at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:65) [activiti-spring-5.22.0.jar:5.22.0]
	at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:60) [activiti-spring-5.22.0.jar:5.22.0]
	at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32) [activiti-spring-5.22.0.jar:5.22.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:163) [spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101) [spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1645) [spring-beans-5.0.5.RELEASE.ja
Activiti是一个开源的工作流管理框架,它可以帮助开发者在应用程序中轻松地集成流程自动化功能。当谈到自动配置时,通常是指在Spring Boot项目中集成Activiti时,如何让数据库自动生成Activiti所需的结构。 在 ActivitiSpring Boot 整合中,我们通常会使用 Activiti的历史数据存储支持,比如 MyBatis 或 JPA(Hibernate)。首先,你需要添加Activiti的相关依赖到你的`pom.xml`(Maven)或`build.gradle`(Gradle)文件中,并配置数据源连接信息。然后,设置Activiti的仓库和版本: **Maven:** ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>latest (具体版本号)</version> </dependency> ``` **Gradle:** ```groovy implementation 'org.activiti:activiti-spring-boot-starter:latest (具体版本号)' ``` 接下来,在Spring配置文件(application.properties或application.yml)中,配置数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_db?characterEncoding=utf8 spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 如果使用MyBatis spring.activiti.sql-migration-enabled=true spring.activiti.sql-migration-jdbc-url=jdbc:mysql://localhost:3306/activiti_schema spring.activiti.sql-migration-table-name=ACT_GE_SCHEMA_LOG ``` 或者如果使用JPA/Hibernate: ```yaml spring.jpa.hibernate.ddl-auto: update ``` 最后,启动应用时,Activiti会根据你的配置检查并创建必要的。如果有变化,它会在运行时更新数据库结构。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值