PostgreSQL Configuration

Both ECC and UCApp uses in-memory database (H2) with persisting db on file system. This setup can be used for some small POC projects, to verify if integration is working and similar, but for real use case scenario, some more resilient database should be used. Below you can find configuration for setting PostgreSQL.

In order to switch to PostgreSQL database, following steps are needed:

  • Modify docker compose file, and add 2 PostgreSQL services, one for Provider and one for Consumer:

  postgres_provider:
    image: postgres:16.2-alpine3.19
    hostname: postgres_provider
    expose:
      - "5432"
    networks:
      - provider
    env_file:
      - ./postgres_provider.env
    volumes:
      - ./app_provider:/var/lib/postgresql/data
      - ./create-multiple-postgresql-databases.sh:/docker-entrypoint-initdb.d/create-multiple-postgresql-databases.sh

  postgres_consumer:
    image: postgres:16.2-alpine3.19
    hostname: postgres_consumer
    expose:
      - "5432"
    networks:
      - consumer
    env_file:
      - ./postgres_consumer.env
    volumes:
      - ./app_consumer:/var/lib/postgresql/data
      - ./create-multiple-postgresql-databases.sh:/docker-entrypoint-initdb.d/create-multiple-postgresql-databases.sh

  • Add dependency for ECC and UCApp to postgres

  • Modify usage control property files, for ecc_resources_provider

and ecc_resources_consumer

and uc-dataapp_resources_provider

and uc-dataapp_resources_consumer

  • Postgres env file

2 env files needed for PostgreSQL should be created, in root of TRUE Connector directory:

postgres_provider.env with content

postgres_consumer.env with content

  • Script for creating multiple databases

Script create-multiple-postgresql-databases.sh should be created with content:

After saving script, please ensure that script is executable. If it is not executable, you can make it executable using the following terminal command:

Last updated