View Categories

Databases

1 min read

EAC requires a database for storing both application metadata and ETL execution logs.
You can use the same database instance for both, or configure separate databases for better performance and scalability.


1. Supported Databases

EAC is compatible with the following database engines (for both App DB and ETL Log DB):

  • MySQL ≥ 8.0
  • PostgreSQL ≥ 15.0
  • SQL Server ≥ 17.0
  • MariaDB ≥ 10.5

You are free to use the same database engine for both App DB and EtlLog DB, or different ones depending on your infrastructure.


2. Database Roles

  • Application Database (App DB)
    Stores metadata such as users, jobs, tasks, projects, schedules, and configuration.
  • ETL Log Database (EtlLog DB)
    Stores execution history, logs, statuses, and performance metrics.

Best practice: separate the two databases to avoid heavy logging operations impacting application responsiveness.


3. Configuration

For MySQL, add this line in the cnf file in [MySQL] section:

binlog_expire_logs_seconds=864000

4. Creating Databases and Users

MySQL Example

CREATE DATABASE eac_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'eac_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON eac_app.* TO 'eac_user'@'%';
FLUSH PRIVILEGES;

PostgreSQL Example

CREATE DATABASE eac_logs;
CREATE USER etl_user WITH ENCRYPTED PASSWORD 'StrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE eac_logs TO etl_user;

SQL Server Example

CREATE DATABASE eac_app;
CREATE LOGIN eac_user WITH PASSWORD = 'StrongPassword123!';
CREATE USER eac_user FOR LOGIN eac_user;
ALTER ROLE db_owner ADD MEMBER eac_user;

5. Doctrine Integration

  • The App DB schema is managed by Doctrine ORM.
    Run migrations after installation or upgrade: php bin/console doctrine:migrations:migrate
  • The ETL Log DB schema is maintained by EAC and not exposed through Doctrine migrations.

6. Best Practices

  • Use separate databases (App DB vs EtlLog DB) for scalability.
  • Monitor storage usage regularly, especially for ETL logs.