Databases
PostgreSQL, MySQL 8+, and MariaDB 10.6+ — how to choose, connect, and migrate.
5 min read
You do not need to know SQL to run Justflows. Pick the database your host already offers, or use Postgres in Docker.
| Database | When to use it | URL scheme |
|---|---|---|
| PostgreSQL (default) | New installs. Bundled in the default Compose file. | postgres://… |
| MySQL 8+ | The host already provides MySQL. | mysql://… |
| MariaDB 10.6+ | The host already provides MariaDB. | mariadb://… |
Docker variants
# MySQL
docker compose -f docker/docker-compose.mysql.yml up
# MariaDB
docker compose -f docker/docker-compose.mariadb.yml upConnection settings
The wizard writes host/port/name/user/password. At runtime you can use discrete DB_DRIVER, DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, or a single DATABASE_URL plus DATABASE_DRIVER. Pool: DATABASE_POOL_MIN / DATABASE_POOL_MAX. TLS: DATABASE_SSL.
Migrations
SQL lives in migrations/ with per-engine files (0001_initial, 0002_multilingual, 0003_css_providers). Run them from the wizard, from Admin → Tools, via POST /api/db/migrate (administrator), or justflows db migrate.
Note
The @justflows/database package is the shared client for Postgres and MySQL/MariaDB (mysql2). Schema modules live there; the running admin uses the Express SQL routes in apps/server.