我正在将我的 grails 应用程序从 activiti 迁移到 camunda(都用作 grails 插件)。因为没有完全(自动)数据库迁移,所以我必须自己做一些更改(使用 db 迁移插件)。camunda 只会创建几个新表(如果属性cmmn设置为 true)。
为此,我必须从 camunda 禁用作业执行程序并禁用 cmmn(以避免迁移)。如果我不禁用这两个属性,camunda 会在数据库迁移插件发挥作用之前尝试创建新表。这将失败,因为缺少某些列(用作外键约束)。
数据库迁移插件完成迁移后,剩下的表应该由camunda创建。只有在启用 cmmn 时才会这样做。所以我在 bootstrap.groovy 中启用了作业执行器并启用了 cmmn。
// will be injected by spring
def processEngine
processEngine.jobExecutor.start()
processEngine.processEngineConfiguration.cmmnEnabled = true
现在的问题是,我无法触发数据库表的创建。因为这是在流程引擎创建/实例化期间完成的(而且我已经有一个流程引擎)。调用的必要方法是executeSchemaOperations(),但是这个方法是受保护的(是的,我知道这在 groovy 中并不是真正的问题,因为可以调用私有/受保护的方法)。但是,这是我的问题,有没有更好的方法来触发表创建?
我正在使用 grails 2.3.11 和 camunda 插件 0.4(带有 camunda 7.2)。
最好的问候和感谢你的帮助,丹尼尔