有没有人解决过Activiti(5.18.0,我也尝试过6 beta)的问题,不会使用数据库架构resp。 Postgres上的表格前缀?
启动时,如果表不在公共模式(或search_path中的其他模式)中,它将找不到表。在那之后,我认为没关系。
似乎有两个错误报告,但这个问题似乎没有解决。
我尝试了不同的解决方案,其中一个是使用activiti作为第一个条目设置数据库的search_path,但似乎使用的Postgres库的某些部分动态地更改了search_path,因此Activiti迟早会再次抱怨。
我在谈论将Activiti ProcessEngine集成到我自己的应用程序中。
答案 0 :(得分:1)
在调试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)