Я переношу свое приложение 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).
С уважением и спасибо за вашу помощь, Даниэль