赵走x博客
网站访问量:151872
首页
书籍
软件
工具
古诗词
搜索
登录
28、API变量
27、查询API
26、API异常策略
25、 流程引擎API与服务
24、事件处理器
23、映射诊断上下文
22、日志
21、配置部署缓存
20、配置在表达式与脚本中可用的bean
19、配置异步历史
18、配置历史
17、作业执行器
16、数据库与表
15、支持的数据库
14、配置JNDI数据源
13、配置数据库
12、ProcessEngineConfiguration bean
11、创建ProcessEngine
10、开始使用Flowable REST API
9、使用历史数据
8、实现JavaDelegate
7、查询与完成任务
6、另一个话题:事务
5、启动流程实例
4、部署流程定义
3、构建命令行程序
2、Flowable是什么?
1、简介
16、数据库与表
资源编号:551129
热度:89
16、Flowable BPMN 用户手册 (v 6.3.0):数据库与表
# 创建数据库表 在你的数据库中创建数据库表,最简单的方法是: - 在classpath中添加flowable-engine JAR - 添加合适的数据库驱动 - 在classpath中添加Flowable配置文件(flowable.cfg.xml),指向你的数据库(参考数据库配置) - 执行DbSchemaCreate类的main方法 然而,通常只有数据库管理员可以在数据库中执行DDL语句,在生产环境中这也是最明智的选择。DDL的SQL脚本可以在Flowable下载页面或Flowable发布文件夹中找到,位于database子文件夹。引擎JAR (flowable-engine-x.jar)的org/flowable/db/create包中也有一份(drop文件夹存放删除脚本)。SQL文件的格式为: ``` flowable.{db}.{create|drop}.{type}.sql ``` 其中db为支持的数据库,而type为: - engine: 引擎执行所需的表,必需。 - history: 存储历史与审计信息的表。当历史级别设置为none时不需要。请注意不使用这些表会导致部分使用历史数据的功能失效(如任务备注)。 MySQL用户请注意:低于5.6.4的MySQL版本不支持timestamps或包含毫秒精度的日期。更糟的是部分版本会在创建类似的列时抛出异常,而另一些版本则不会。当使用自动创建/升级时,引擎在执行时会自动修改DDL语句。当使用DDL文件方式建表时,可以使用通用版本,或使用文件名包含mysql55的特殊版本(用于5.6.4以下的任何版本)。特殊版本的文件中不会使用毫秒精度的列类型。 具体地说,对于MySQL的版本: - <5.6: 不支持毫秒精度。可以使用DDL文件(使用包含mysql55的文件)。可以使用自动创建/升级。 - 5.6.0 - 5.6.3: 不支持毫秒精度。不可以使用自动创建/升级。建议升级为较新版本的数据库。如果确实需要,可以使用包含mysql55的DDL文件。 - 5.6.4+: 支持毫秒精度。可以使用DDL文件(默认的包含mysql的文件)。可以使用自动创建/升级。 请注意如果在Flowable表已经创建/升级后,再升级MySQL数据库,则需要手工修改列类型! # 数据库表名说明 Flowable的所有数据库表都以ACT_开头。第二部分是说明表用途的两字符标示符。服务API的命名也大略符合这个规则。 - ACT_RE_*: 'RE’代表repository。带有这个前缀的表包含“静态”信息,例如流程定义与流程资源(图片、规则等)。 - ACT_RU_*: 'RU’代表runtime。这些表存储运行时信息,例如流程实例(process instance)、用户任务(user task)、变量(variable)、作业(job)等。Flowable只在流程实例运行中保存运行时数据,并在流程实例结束时删除记录。这样保证运行时表小和快。 - ACT_HI_*: 'HI’代表history。这些表存储历史数据,例如已完成的流程实例、变量、任务等。 - ACT_GE_*: 通用数据。在多处使用。 # 数据库升级 在升级前,请确保你已经(使用数据库的备份功能)备份了数据库。 默认情况下,每次流程引擎创建时会进行版本检查,通常是在你的应用或者Flowable web应用启动的时候。如果Flowable发现库版本与Flowable数据库表版本不同,会抛出异常。 要进行升级,首先需要将下列配置参数放入你的flowable.cfg.xml配置文件: ```
``` 同时,在classpath中加上合适的数据库驱动。升级应用中的Flowable库,或者启动一个新版本的Flowable,并将它指向包含旧版本数据的数据库。将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。 也可以直接运行升级DDL语句。也可以从Flowable下载页面获取升级数据库脚本并运行。