Choose n8n's database
By default, n8n uses SQLite to save credentials, past executions, and workflows. n8n also supports PostgresDB. Refer to Supported PostgreSQL versions for n8n's PostgreSQL version policy.
Database type by n8n installation
The database type used varies depending on your n8n installation:
Self-hosted n8n
By default, self-hosted installations use SQLite. You can optionally configure PostgreSQL by setting the appropriate environment variables (see PostgresDB configuration).
n8n Cloud
n8n Cloud installations use different databases depending on your plan tier:
SQLite: Starter, Pro, and legacy Enterprise plans
PostgreSQL: Enterprise Scaling plans only
Shared settings
The following environment variables get used by all databases:
DB_TABLE_PREFIX(default: -) - Prefix for table names
PostgresDB
Supported PostgreSQL versions
n8n supports:
The latest two actively maintained PostgreSQL major versions (17 and 18, as of July 2026).
One additional major version for compatibility (16).
Run the latest minor release within your major version.
n8n doesn't officially support PostgreSQL-compatible derivatives, such as Amazon Aurora, AlloyDB, CockroachDB, or YugabyteDB.
The PostgreSQL project retires its oldest maintained major version and releases a new one every November, so n8n's supported version range shifts each year. Check this page for the current supported versions, rather than relying on a specific version number you've seen elsewhere.
To use PostgresDB as the database, you can provide the following environment variables:
DB_TYPE=postgresdbDB_POSTGRESDB_DATABASE(default: 'n8n')DB_POSTGRESDB_HOST(default: 'localhost')DB_POSTGRESDB_PORT(default: 5432)DB_POSTGRESDB_USER(default: 'postgres')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 isn't 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
Required permissions
n8n needs to create and modify the schemas of the tables it uses.
Recommended permissions:
TLS
You can choose between these configurations:
Not declaring (default): Connect with
SSL=offDeclaring only the CA and unauthorized flag: Connect with
SSL=onand verify the server's signatureDeclaring
_{CERT,KEY}and the above: Use the certificate and key for client TLS authentication
SQLite
This is the default database that gets used if nothing is defined.
The database file is located at: ~/.n8n/database.sqlite
Last updated
Was this helpful?