持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
Activiti的使用
配置了Activiti的数据源,可以让Activiti在启动时自动建表,但是生产环境下,自动建表是很危险的操作,尤其是框架自带的功能,因此,我们需要手动创建表结构,接下来,看看怎么执行数据库的表结构创建。
Activiti表结构创建
为数据库创建数据库表的最简单方法是:
- 将activiti引擎的依赖添加到类路径
- 添加合适的数据库驱动类
- 将Activiti配置文件(Activiti.cfg.xml)添加到类路径中,配置需要的数据库信息
- 执行
DbSchemaCreate类的main方法 然而,通常只有数据库管理员才能在数据库上执行DDL语句。在生产系统中,通常选用手动执行的方式。SQL DDL语句可以在Activiti下载页面或Activiti源码数据库子目录中找到。脚本也位于engine jar(activiti-engine-x.jar)中,位于org/activiti/db/create包中(drop文件夹包含drop语句)。SQL文件的格式如下:
activiti.{db}.{create|drop}.{type}.sql
其中,db是任何受支持的数据库,类型为
- engine:执行引擎所需的表。必须的。
- identity:包含用户、组和用户到组的成员身份的表。这些表是可选的,应在使用引擎附带的默认标识管理时使用。
- history:包含历史记录和审核信息的表。可选:当历史记录级别设置为“无”时,不需要。请注意,这还将禁用某些将数据存储在历史数据库中的功能(例如对任务进行注释)。 使用MySQL需要注意:低于5.6.4的MySQL版本不支持时间戳或毫秒精度的日期。更糟糕的是,某些版本在尝试创建此类列时会引发异常,而其他版本则不会。在执行自动创建/升级时,引擎会在执行DDL时更改DDL。使用DDL文件方法时,可以使用常规版本和包含mysql55的特殊文件(这适用于低于5.6.4的任何版本)。后一个文件的列类型中没有毫秒精度。