2014-06-11 5 views
1

MS JDBC 2012 년에 MS JDBC sqljdbc4.jar 드라이버를 통해 Activiti 데이터베이스를 호스트하려고합니다. JBoss에서 Activiti 5.14를 설치하고, 싫증이 났으며, Tomcat 7에서 5.15.1로 다시 시작합니다. 따라서 activiti-explorer.war를 배포하고 시작하면 5.14 activiti의 데이터베이스 스키마를 업그레이드하려고 시도하고 있습니다. MS SQL에서 호스팅되는 데이터베이스.MSSQL 데이터베이스를 사용하고 시작시 스키마를 업데이트하려면 Tomcat에 Activiti를 어떻게 배포합니까?

업그레이드가 실패하고 오류가 Tomcat 서버의 catalina.out 로그 파일에 표시 : 데이터베이스에 로그인

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 표를 참조하십시오.

in-process 데이터베이스 업그레이드를 수행하기 위해 Activiti 데이터베이스 사용자가 필요로하는 MS SQL 권한은 무엇입니까? 또는 Activiti Explorer 전쟁에서 업그레이드를 수행하려면 어떻게해야합니까?

답변

1

글쎄, 난,

는 MS SQL 데이터베이스 사용자가 Activiti 데이터베이스에 잘 회원 db_datareader로하고 db_datawriter을 함께 얻을 것 같다 ... 사람이 특정 MS SQL 세부 사항을 알 필요가 경우에, 그것을 알아 냈다 처음으로 Activiti 엔진을 시작하기 전에 수동으로 데이터베이스 작성 DDL 스크립트를 실행 한 경우

엔진 (분명히 activiti-explorer.war의 activity-engine.jar 종속성에 있음)이 데이터베이스 스키마 업그레이드가 필요하다고 결정하고 그러한 변경을 시도하도록 구성되면 데이터베이스 사용자는 db_ddladmin 구성원이 필요합니다. 데이터베이스에서 변경을 수행합니다. (손바닥을 이마에 바른다).

아마도 권한을 추가로 제한 할 수있는 방법이 있지만 아마도 db_owner보다 좋을 것 같습니다. 프로덕션 용으로 제로 다운 타임 변경 절차 요구 사항을 고려하면 자동 업그레이드 기능이 해제 될 것입니다.