Bring your own database
EntityFlow picks the diagram-plane engine from the scheme of the connection string you supply in EF_DIAGRAM_DB_URL. You bring the database; EntityFlow manages its schema and migrations.
Support tiers
Tier 1 — fully supported. PostgreSQL, MySQL, and SQLite run the complete diagram plane: full schema, migrations, and live traffic.
Tier 2 — experimental. SQL Server: EntityFlow can generate SQL Server DDL for the schemas you design (this is fully supported — it's a codegen dialect), but it cannot yet run its own diagram-plane schema on SQL Server. Use a Tier 1 engine for the diagram plane.
Scheme to engine
| Connection-string scheme | Engine | Tier |
|---|---|---|
postgres:// / postgresql:// | PostgreSQL | Tier 1 |
mysql:// | MySQL | Tier 1 |
file: / sqlite: | SQLite | Tier 1 |
sqlserver:// / mssql:// | SQL Server | Tier 2 (DDL generation only) |
The control plane is always PostgreSQL
The control plane (identity, tenancy, audit, entitlements) is always PostgreSQL. If your EF_DIAGRAM_DB_URL is anything other than Postgres, you must also point EF_CONTROL_DB_URL at a PostgreSQL instance:
# Diagram plane on MySQL, control plane on Postgres
export EF_DIAGRAM_DB_URL="mysql://user:pass@mysql.internal:3306/entityflow"
export EF_CONTROL_DB_URL="postgres://user:pass@pg.internal:5432/ef_control"
When the diagram plane is PostgreSQL, a single connection can serve both planes, and EF_CONTROL_DB_URL is optional.
The diagram-plane database is not the same thing as the DDL you export. The diagram plane is where EntityFlow stores your diagrams (it can be Postgres, MySQL, or SQLite). The exported DDL is the SQL EntityFlow generates from your design — and that supports four dialects including SQL Server. You can design a SQL Server schema and export its DDL while storing the diagram itself in PostgreSQL.
See the Configuration reference for pool size and migration options.