我可以在同一个数据库中有两个 Spring Boot Camunda 应用程序吗?

Can I have two Spring Boot Camunda applications in same db with different schema

我正在尝试启动两个不同的 Spring Boot Camunda 应用程序。第一个启动非常好,并在数据库中创建 table 和所有内容。但是,当我尝试启动第二个应用程序时,它失败了。需要明确的是,如果有意义的话,我希望应用程序将它们的模式体验为它们自己的数据库。启动第二个 Spring 启动应用程序时出现的错误是:

ENGINE-16004 Exception while closing command context: 
### Error querying database.  Cause: org.postgresql.util.PSQLException: ERROR: relation "act_ge_property" does not exist
  Position: 15
### The error may exist in org/camunda/bpm/engine/impl/mapping/entity/Property.xml
### The error may involve org.camunda.bpm.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### SQL: select * from ACT_GE_PROPERTY where NAME_ = ?
### Cause: org.postgresql.util.PSQLException: ERROR: relation "act_ge_property" does not exist
  Position: 15

我只有一个 Postgres 数据库,但应用程序连接到不同 username/password 的数据库。他们的用户拥有自己的架构,并且无权访问数据库中的其他架构。 为这两个应用程序设置了以下应用程序属性:camunda.bpm.datasource.schema-update=true。 阅读有关 Camunda 的文档后,我可以看到 .schema-update=true 应该创建 table 如果它们不存在。 我不明白为什么第二个应用程序不创建 tables。

对于 Postgres 架构配置,我使用以下命令创建它们:

CREATE USER applicationName WITH PASSWORD 'r4nd0m';
CREATE SCHEMA AUTHORIZATION applicationName;

我不知道问题是出在配置 Camunda 应用程序还是 privileges/creation 关于模式。

如有任何帮助,我们将不胜感激!

是的,你可以。此项目向您展示如何配置两个独立的 Camunda 实例,它们在同一数据库中使用两个单独的模式。

https://github.com/rob2universe/two-camunda-instances

基本属性是:

Spring.datasource:
  url: jdbc:postgresql://localhost:5432/postgres?autoReconnect=true
  username: cam1
  password: cam1
  driver-class-name: org.postgresql.Driver
server.port: 8081
server:
  servlet:
    context-path: /cam1
camunda:
  bpm:
    database:
      schema-name: cam1
      table-prefix: cam1.