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
- Oracle (basic support, logging only)
- SQLite (for development/testing only, not recommended for production)
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
All database connections are defined in the .env or .env.local file:
### Application database
APP_DATABASE_URL="mysql://eac_user:password@127.0.0.1:3306/eac_app"
### ETL Log database
ETLLOG_DATABASE_URL="pgsql://etl_user:password@127.0.0.1:5432/eac_logs"
Replace the prefix (mysql://, pgsql://, sqlsrv://, oci://, sqlite://) depending on your database type.
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.
- Avoid using SQLite in production.
- Monitor storage usage regularly, especially for ETL logs.
