Skip to content

[Core] Support PostgreSQL as SystemDB Datasource #5476

@ThuF

Description

@ThuF

Description

Currently, the SystemDB datasource in Eclipse Dirigible is bound to H2, which works well for development environments but prevents certain applications from running reliably in production.

There are several built-in components (e.g., CSV Processor, BPMN Engine) that rely on the SystemDB to store metadata. When running Dirigible-based applications in production—typically inside containers—using H2 causes data loss or inconsistencies because the metadata is ephemeral and recreated at every restart.

Setup

The SystemDB can be configured to use PostgreSQL as follows:

DIRIGIBLE_DATABASE_SYSTEM_DRIVER: org.postgresql.Driver
DIRIGIBLE_DATABASE_SYSTEM_URL: jdbc:postgresql://database:5432/<databaseName>
DIRIGIBLE_DATABASE_SYSTEM_USERNAME: <userName>
DIRIGIBLE_DATABASE_SYSTEM_PASSWORD: <password>

Problem

When using SystemDB in production:

  • CSV Processor attempts to insert metadata on every container restart.
  • BPMN engine creates a new process version on each application startup, even when the BPMN file has not changed.
  • Other components reliant on SystemDB metadata also lose state when the container is recreated.

This happens because SystemDB is non-persistent, as it is tied to an in-memory or file-based H2 instance.

Additionally, some Dirigible components (e.g., BPMN entity classes) use column types such as CLOB, which are not supported by PostgreSQL and prevent schema creation.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions