Supported Database Systems
Directus officially supports the following database systems:PostgreSQL
Driver:pg (node-postgres)
PostgreSQL is a powerful, open-source object-relational database system with a strong reputation for reliability, feature robustness, and performance.
Configuration:
- Full geometry support via PostGIS extension
- Advanced search capabilities
- JSON/JSONB field support
- Generated columns support (PostgreSQL 12+)
- Custom search paths for schema isolation
- PostGIS - Enables geometry type support (Point, Polygon, etc.)
- Install:
CREATE EXTENSION IF NOT EXISTS postgis;
MySQL / MariaDB
Driver:mysql2
MySQL and MariaDB are popular open-source relational database management systems known for their speed and ease of use.
Configuration:
- Boolean type mapping (tinyint(1))
- InnoDB engine for ACID compliance
- Collation and charset configuration
- Auto-increment primary keys
- Directus uses
mysql2driver internally whenDB_CLIENT='mysql'is set - Recommended collation:
utf8mb4_unicode_ciorutf8mb4_0900_ai_ci - Transactions with DDL statements are automatically committed
SQLite
Driver:sqlite3
SQLite is a lightweight, serverless, self-contained SQL database engine ideal for development and embedded applications.
Configuration:
- Zero-configuration
- Single-file database
- Foreign key support (enabled automatically)
- Limited geometry support via Spatialite extension
- SQLite automatically uses
NULLas default for unspecified values - Best suited for development, testing, or low-concurrency applications
- Not recommended for production deployments with multiple concurrent users
- Spatialite - Enables geometry type support (limited)
Microsoft SQL Server
Driver:tedious
Microsoft SQL Server is an enterprise-grade relational database management system.
Configuration:
- Enterprise scalability
- UTC timezone handling disabled by default (aligned with other vendors)
- Auto-increment via IDENTITY columns
- Directus sets
useUTC: falseto maintain consistency with other database vendors - No automatic timezone conversion on database level
Oracle Database
Driver:oracledb
Oracle Database is a multi-model database management system produced by Oracle Corporation.
Configuration (Standard):
- Enterprise-grade performance and scalability
- Date and timestamp formatting enforced to ISO standards
- Session-level configuration for consistent date/time handling
- Directus enforces ISO date format:
YYYY-MM-DD - Timestamp format:
YYYY-MM-DD"T"HH24:MI:SS.FF3"Z" - Different query syntax for testing connection:
SELECT 1 FROM DUAL
CockroachDB
Driver:pg (PostgreSQL-compatible)
CockroachDB is a distributed SQL database built for cloud-native applications with PostgreSQL compatibility.
Configuration:
- Horizontal scalability
- PostgreSQL wire protocol compatibility
- Built-in replication and fault tolerance
- Automatic serial normalization to SQL sequences
- Directus automatically sets
serial_normalization = "sql_sequence" - Default integer size set to 4 bytes for consistency
- Fully PostgreSQL-compatible for most operations
Database Client Detection
Directus detects the database client based on the Knex client constructor name:| Environment Value | Knex Client | Database Vendor |
|---|---|---|
pg | Client_PG | PostgreSQL |
mysql | Client_MySQL2 | MySQL/MariaDB |
sqlite3 | Client_SQLite3 | SQLite |
mssql | Client_MSSQL | Microsoft SQL Server |
oracledb | Client_Oracledb or Client_Oracle | Oracle Database |
cockroachdb | Client_CockroachDB | CockroachDB |
Connection Pooling
All database connections use connection pooling for optimal performance. Configure pool settings using environment variables:DB_POOL_MIN- Minimum number of connections in the pool (default: 0)DB_POOL_MAX- Maximum number of connections in the pool (default: 10)DB_POOL_IDLE_TIMEOUT- Time (ms) a connection can be idle before being releasedDB_POOL_ACQUIRE_TIMEOUT- Time (ms) to wait for a connection before timing out
Database Validation
Connection Validation
Directus validates database connectivity on startup using:Charset Validation (MySQL)
For MySQL databases, Directus validates that tables and columns use the database’s default collation. Inconsistencies are logged as warnings but don’t prevent startup. Exclude specific tables from validation:Choosing a Database
For Development:- SQLite - Quick setup, zero configuration
- PostgreSQL - Feature-rich, excellent performance
- MySQL/MariaDB - Fast, widely supported
- PostgreSQL - Advanced features, robust performance
- Microsoft SQL Server - Enterprise support, Windows integration
- Oracle Database - Mission-critical applications
- CockroachDB - Horizontal scalability, automatic replication
- PostgreSQL with replication - Proven reliability
Next Steps
- Learn about Schema Management
- Understand Database Migrations