1

MS JDBC sqljdbc4.jar ドライバーを介して MSSQL 2012 で Activiti データベースをホストしようとしています。JBoss で Activiti 5.14 をセットアップしましたが、うんざりして、Tomcat 7 で 5.15.1 からやり直しています。したがって、activiti-explorer.war をデプロイして起動すると、5.14 Activiti のデータベース スキーマをアップグレードしようとしています。 MS SQL でホストされているデータベース。

アップグレードは失敗し、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テーブルが表示されます。

インプロセス データベース アップグレードを実行するために、Activiti データベース ユーザーが必要とする MS SQL 権限は何ですか? または、Activiti Explorer war でアップグレードを実行するにはどうすればよいですか?

4

1 に答える 1

1

まあ、誰かが特定のMS SQLの詳細を知る必要がある場合に備えて、私はそれを理解しました...

Activiti エンジンを初めて起動する前にデータベース作成 DDL スクリプトを手動で実行した場合、MS SQL データベース ユーザーは Activiti データベースのメンバーシップdb_datareaderとうまくやっていくようです。db_datawriter

エンジン (明らかに activiti-explorer.war の activity-engine.jar 依存関係にある) がデータベース スキーマのアップグレードが必要であると判断し、そのような変更を試みるように構成されている場合、データベース ユーザーはデータベースdb_ddladminのメンバーシップを実行する必要があります。変更。(手のひらの付け根を額に当てます)。

権限をさらに制限する方法があるかもしれませんが、これは db_owner よりも優れているようです。本番環境での使用と、ゼロ ダウンタイムの変更手順の要件を考慮して、おそらく自動アップグレード機能をオフにします。

于 2014-06-11T16:05:37.707 に答える