activiti5.20与6.0版本数据库变化
Activiti是一个基于Java开发的轻量级、可嵌入的工作流和业务流程管理系统。它是遵循Apache许可的开源项目,被广泛应用于业务流程自动化。随着软件的迭代更新,Activiti的数据库结构也会发生相应的变更,以增强性能,提升用户体验,或是为了引入新功能。这里主要介绍Activiti从5.20版本升级到6.0版本时数据库所发生的变更。 在Activiti 6.0版本中,数据库模式被重新设计为多租户架构,这意味着系统能够支持在同一数据库中运行多个租户的流程实例,每个租户的数据都是独立的。这一点在数据库结构上会有明显的体现。 针对系统表ACT_GE_PROPERTY,增加了两个字段:schema.version和schema.history。schema.version字段用于记录当前数据库的版本信息,而schema.history用于记录版本的历史更新记录。这意味着系统可以更好地追踪和管理数据库版本的变化。 在ACT_RE_DEPLOYMENT表中新增了KEY和ENGINE_VERSION两个字段。KEY字段用于存储部署时使用的Key,而ENGINE_VERSION则存储流程引擎的版本信息,从而允许系统根据不同版本的引擎部署不同的流程定义。 ACT_RE_PROCDEF表中新增了ENGINE_VERSION字段,用以记录流程定义所使用的流程引擎版本,这有助于实现流程版本的管理,使得流程可以更好地在不同版本的引擎间迁移。 在运行时的表ACT_RU_TASK中,添加了CLAIM_TIME字段,记录任务被认领的时间,以及ROOT_PROC_INST_ID记录流程实例的根ID,IS_MI_ROOT字段用于标识是否是多实例根任务,START_TIME记录任务的开始时间,START_USER_ID记录任务开始时的用户ID,IS_COUNT_ENABLED标识任务是否参与计数,EVT_SUBSCR_COUNT记录事件订阅的计数,JOB_COUNT记录作业计数,TIMER_JOB_COUNT记录定时器计数,SUSP_JOB_COUNT记录挂起作业计数,DEADLETTER_JOB_COUNT记录死信作业计数,VAR_COUNT记录变量计数,ID_LINK_COUNT记录ID关联的计数。 ACT_RU_EXECUTION表新增字段ACT_RU_EXECUTIONTASK_COUNT,记录执行任务的计数;新增字段ROOT_PROC_INST_ID用于记录流程实例的根ID,IS_MI_ROOT用于标识是否是多实例根任务,START_TIME记录执行的开始时间,START_USER_ID记录开始时的用户ID,IS_COUNT_ENABLED用于标识是否启用计数,以及新增字段TENANT_ID用于记录租户ID。 新增了ACT_RU_TIMER_JOB表,用于存储定时器作业相关信息。该表包含ID, REV, TYPE, LOCK_EXP_TIME, LOCK_OWNER, EXCLUSIVE, EXECUTION_ID, PROCESS_INSTANCE_ID, PROC_DEF_ID, RETRIES, EXCEPTION_STACK_ID等字段,并设有主键。新增了ACT_RU_SUSPENDED_JOB表,用于存储被挂起的定时作业相关信息,包含字段ID, REV, TYPE, EXCLUSIVE, EXECUTION_ID, PROCESS_INSTANCE_ID, PROC_DEF_ID, RETRIES, EXCEPTION_STACK_ID等。新增了ACT_RU_DEADLETTER_JOB表,用于存储死信作业的相关信息,包含ID, REV, TYPE, EXECUTION_ID, PROCESS_INSTANCE_ID, PROC_DEF_ID, EXCEPTION_STACK_ID等字段。这些表的创建可以加强Activiti 6.0在作业管理和调度上的能力。 上述提到的各个表中的字段变更以及新表的添加是Activiti 6.0数据库结构相较于5.20版本的主要变化。这些变更对于数据库管理员来说是很重要的,因为它们需要对数据库进行相应的调整,以确保流程引擎的正常工作。同时,对于开发人员而言,也需要了解这些变化以正确地使用新的API和功能。 Activiti 6.0版本的数据库变化不仅仅体现在表结构的调整上,更多地体现在流程引擎对多租户架构的支持、对流程实例的增强管理,以及作业调度的改进上。这些变化都是为了增强Activiti作为一个工作流管理系统的能力,提高其在不同应用场景中的适用性和性能。因此,在进行Activiti 6.0部署和维护的过程中,数据库方面的变化不容忽视。