Как развернуть Activiti на Tomcat, чтобы использовать базу данных MSSQL и обновлять схему при запуске?

Я пытаюсь разместить базу данных Activiti в MSSQL 2012 через драйвер MS JDBC sqljdbc4.jar. Я настроил Activiti 5.14 в JBoss, мне это надоело, и я начинаю с 5.15.1 в Tomcat 7. Поэтому после развертывания и запуска activiti-explorer.war он пытается обновить схему базы данных моего 5.14 activiti база данных, размещенная в MS SQL.

Обновление завершается сбоем, и ошибки отображаются в файле журнала catalina.out сервера Tomcat:

05:10:38,962 [localhost-startStop-1] INFO  org.activiti.engine.impl.db.DbSqlSession  - upgrading activiti engine schema from 5.14 to 5.15.1
05:10:38,962 [localhost-startStop-1] INFO  org.activiti.engine.impl.db.DbSqlSession  - Upgrade needed: 514 -> 515. Looking for schema update resource for component 'engine'
05:10:38,963 [localhost-startStop-1] INFO  org.activiti.engine.impl.db.DbSqlSession  - performing upgrade on engine with resource org/activiti/db/upgrade/activiti.mssql.upgradestep.514.to.515.engine.sql
05:10:38,977 [localhost-startStop-1] ERROR org.activiti.engine.impl.db.DbSqlSession  - problem during schema upgrade, statement alter table ACT_RU_TASK 
add CATEGORY_ nvarchar(255)
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot find the object "ACT_RU_TASK" because it does not exist or you do not have permissions.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)

Захожу в базу, вижу таблицу ACT_RU_TASK.

Какие разрешения MS SQL необходимы пользователю базы данных Activiti для выполнения обновления базы данных в процессе? Или как я могу заставить войну Activiti Explorer выполнить обновление?


person Greg    schedule 11.06.2014    source источник


Ответы (1)


Ну, я понял это, если кому-то нужно знать конкретные детали MS SQL...

Пользователь базы данных MS SQL, кажется, прекрасно справляется с членством db_datareader и db_datawriter в базе данных Activiti, если вы запустили базу данных, создайте сценарии DDL вручную перед запуском механизма Activiti в первый раз.

Как только движок (очевидно, в зависимости activity-engine.jar от activiti-explorer.war) решит, что вам нужно обновить схему базы данных, и он настроен на попытку такого изменения, пользователю базы данных потребуется db_ddladmin членство в базе данных, чтобы выполнить переделки. (Приложить основание ладони ко лбу).

Возможно, есть способ еще больше ограничить привилегии, но, похоже, это лучше, чем db_owner. Для производственного использования и с учетом требований к процедуре изменения с нулевым временем простоя я, вероятно, отключу функцию автоматического обновления.

person Greg    schedule 11.06.2014