Supported databases#
By default, n8n uses SQLite to save credentials, past executions, and workflows. However, n8n also supports PostgresDB and MySQL.
Shared settings#
The following environment variables get used by all databases:
DB_TABLE_PREFIX
(default: -) - Prefix for table names
PostgresDB#
To use PostgresDB as the database, you can provide the following environment variables:
DB_TYPE=postgresdb
DB_POSTGRESDB_DATABASE
(default: 'n8n')DB_POSTGRESDB_HOST
(default: 'localhost')DB_POSTGRESDB_PORT
(default: 5432)DB_POSTGRESDB_USER
(default: 'root')DB_POSTGRESDB_PASSWORD
(default: empty)DB_POSTGRESDB_SCHEMA
(default: 'public')DB_POSTGRESDB_SSL_CA
(default: undefined): Path to the server's CA certificate used to validate the connection (opportunistic encryption is not supported)DB_POSTGRESDB_SSL_CERT
(default: undefined): Path to the client's TLS certificateDB_POSTGRESDB_SSL_KEY
(default: undefined): Path to the client's private key corresponding to the certificateDB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED
(default: true): If TLS connections that fail validation should be rejected
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
TLS#
You can choose between these configurations:
- Not declaring (default): Connect with
SSL=off
- Declaring only the CA and unauthorized flag: Connect with
SSL=on
and verify the server's signature - Declaring
_{CERT,KEY}
and the above: Use the certificate and key for client TLS authentication
MySQL / MariaDB#
To use MySQL or MariaDB, provide the following environment variables:
DB_TYPE=mysqldb
orDB_TYPE=mariadb
DB_MYSQLDB_DATABASE
(default: 'n8n')DB_MYSQLDB_HOST
(default: 'localhost')DB_MYSQLDB_PORT
(default: 3306)DB_MYSQLDB_USER
(default: 'root')DB_MYSQLDB_PASSWORD
(default: empty)
1 2 3 4 5 6 7 8 |
|
SQLite#
This is the default database that gets used if nothing is defined.
The database file is located at:
~/.n8n/database.sqlite
Other databases#
n8n officially supports SQLite, PostgresDB, and MySQL.
n8n internally uses TypeORM, so adding support for the following databases should be possible:
- CockroachDB
- Microsoft SQL
- Oracle
If you can't use any of the supported databases for some reason and you can code, consider submitting a pull request. You can also request support here.