postgresql - Postgres 上的 Activiti 5.18.0 不会使用该模式

标签 postgresql activiti

有没有人解决过 Activiti(5.18.0,我也尝试过 6 beta)不会使用数据库模式的问题。 Postgres 上的表前缀?

启动时,如果表不在公共(public)模式(或搜索路径中的另一个模式)中,它将找不到表。之后我觉得还可以。

似乎有两个错误报告,但那个问题似乎并没有解决。

我尝试了不同的解决方案,其中一个是为数据库设置 search_path 并将 activiti 作为其第一个条目,但似乎使用的 Postgres 库的某些部分会动态更改 search_path,因此 Activiti 迟早会再次提示。

我说的是在我自己的应用程序中集成 Activiti ProcessEngine。

最佳答案

在调试Activity的源码后(其实我克隆了https://github.com/Activiti/Activiti(昨天!?)并使用分支activiti6)我发现我居然少了一个属性。

因此,如果您设置架构前缀,那么您必须将“tablePrefixIsSchema”属性设置为“true”!

    processEngineConfiguration.setDatabaseSchema("activiti");
    processEngineConfiguration.setDatabaseTablePrefix("activiti.");
    /**
     * NOTE!
     * 
     * If we set the prefix (for whatever reasons) and it's the same as the
     * schema, then the following attribute has to be set to "true"!!!
     */
    processEngineConfiguration.setTablePrefixIsSchema(true);

这解决了整个问题。

我现在将尝试使用 Activiti 5.18 并更新此解决方案。 (我用的是Postgresql 9.3,驱动9.3-1103-jdbc41。)

最初的错误是(如果其他人遇到这个):

org.activiti.engine.ActivitiException: Activiti database problem: Tables missing for component(s) engine, history, identity
at org.activiti.engine.impl.db.DbSqlSession.dbSchemaCheckVersion(DbSqlSession.java:925)

关于postgresql - Postgres 上的 Activiti 5.18.0 不会使用该模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656720/

相关文章:

java - Activiti 用户界面 Spring App 集成

java - 触发 Activiti 工作流程以执行 ReceiveTask 循环中的任务

sql - PostgreSQL/Pandas 插入包含 null/np.nan/空值的稀疏数组

database - Postgresql 函数中的列命名

java - 连接其他数据库 postgresql JDBC

alfresco - 如何使用规则(包括文档)启动 Alfresco 工作流程

java - 获取Activiti中最新运行的流程实例

node.js - Postgresql 连接在 node.js 和 pg 中超时

postgresql - 在 psql 中使用位置参数 ($1,..)

jbpm - BPM 中的中间事件或计时器