activiti数据库
① 如何将activiti的数据库表导出
Activiti 引擎启动时默认会检测数据库版本与程序版本是否相符,不相符就会抛出异常停止引擎的初始化。
这一策略可以通过引擎的初始化配置参数databaseSchemaUpdate来控制,
如下图的spring创建流程引擎的配置文件:
<bean id="processEngineConfiguration" class="org.activiti.spring.">
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="TransactionManager" />
<!--
databaseSchemaUpdate:允许在流程引擎启动和关闭时设置处理数据库模式的策略。 �8�8
false(默认):创建流程引擎时检查数据库模式的版本是否与函数库要求的匹配,如果版本不匹配就会抛出异常。
true:构建流程引擎时,执行检查,如果有必要会更新数据库模式。如果数据库模式不存在,就创建一个。
create - 引擎启动时创建表;
create-drop:创建流程引擎时创建数据库模式,关闭流程引擎时删除数据库模式。
drop-create - 引擎启动时先删除表再重新创建表。
-->
<property name="databaseSchemaUpdate" value="true" />
<property name="jobExecutorActivate" value="false"/>
<property name="history" value="full"/>
<property name="processDefinitionCacheLimit" value="10"/>
<property name="databaseSchema" value="ITHOME"/>
</bean>
② activiti自身表与业务表分库数据存放
1 基本思想之什么是分库分表?
从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。
2 基本思想之为什么要分库分表?
数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。
③ activiti 工作流 启动时如何取消自动建表到mysql数据库中
<property name="databaseSchemaUpdate" >
false: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。
true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。
create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。
drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)。
从以上几种情况看,无法取消自动创建表。仅供参考。
④ 如何修改activiti数据库
Activiti默认用的事H2数据库,要想让activiti使用独立运行的H2或者其他数据库,可以修改activiti explorer web应用的WEB-INF/CLASSES目录下的db.properties