
1.3 源码目录说明
Activiti源码下载之后,可以查看modules\activiti-engine模块中的src\main\resources文件夹,该文件夹中存储了流程引擎操作数据库需要的DDL脚本,如图1-9所示。

图1-9 Activiti中的DDL脚本
(1)create:创建数据库、表视图、索引的脚本。形如activiti.db2.create.engine.sql,其中db2代表操作的数据库类型。
(2)drop:删除数据库、表视图、索引的脚本。形如activiti.db2.drop.engine.sql。
(3)upgrade:升级数据库、表视图、索引的脚本。形如activiti.db2.upgradestep.53.to.54.engine.sql,其中53对应引擎的版本(5.13),54对应引擎需要升级到的版本(5.14)。
(4)mapping:由于Activiti底层使用MyBatis框架操作数据库,因此该文件下对应MyBatis框架需要的所有的映射文件。
以上目录中定义的脚本文件规范如下,这里以activiti.db2.create.history.sql脚本为例进行讲解。
(1)activiti:activiti工作流引擎的标识。
(2)db2:数据库厂商名称,可以是MySQL、H2、Oracle、PostgreSQL等,比如本书中使用的是MySQL数据库,那么操作时选择activiti.mysql开头的脚本文件即可。
(3)create:创建数据库表的操作,对应有drop、upgradestep标识符号,操作时选择对应的即可。
(4)engine:脚本类型,主要分为以下三种。
• engine:主要用于创建核心表,例如ACT_ru*表等。
• history:主要用于创建历史表,例如ACT_hi*表。
• identity:主要用于创建用户表ACT_id*以及用户信息表(扩展表时可以不使用该脚本,具体实现可以参考16.7.2节)。
引擎为何需要对以上三个脚本文件分别进行定义呢?其实很简单,因为核心表(engine)是必须要使用的,而历史表(history)以及用户表(identity)是选用的,因此需要加以区分。