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

Activiti 5.18.0 on Postgres won't use the schema

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

启动时,如果 table 不在 public 模式(或 search_path 中的另一个模式)中,它将找不到它们。之后我觉得还可以。

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

我尝试了不同的解决方案,其中一个是为数据库设置 search_path 作为第一个条目,但似乎使用的 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)