While dotCMS does cache aggressively and will attempt to limit database traffic on the front end of your site, the database is an important part of your overall dotCMS system and your database performance is vital to dotCMS, especially in the authoring environment.
Supported Databases
The following table lists all of the databases supported by dotCMS, the versions of dotCMS each database is supported in, and official links for each database.
Database | dotCMS Versions | Official Links |
---|---|---|
PostgreSQL | All versions (Community and Enterprise) | Main site / Documentation / Download |
To see the section of this document specific to each database, click the link for that database in the first column. To view an official site for a database, click the appropriate link in the last column. Please see the dotCMS features list for more information on features supported in different dotCMS versions.
Note: Current versions of dotCMS no longer support MySQL or Oracle databases. If you are upgrading a system using MySQL, this tool can simplify the migration to PostgreSQL. It is believed to work in most cases, though it has not been tested with significantly old versions of the software. We still recommend, as we do generally, that you make backups before performing any major operation on a database.
Supported Versions
New dotCMS installations should always use the most recent release of the selected database. Support for older database versions is provided only to customers with dotCMS support contracts in place before new database versions are released.
For a complete list of the current versions of each database supported, please see the Database portion of the dotCMS Technology Requirements documentation.
Configuration
The Data source can be initialized in multiple different ways - we always recommend using environmental variables to configure your datasource. Any of the following methods can be used, and these sources will be checked in the order they are listed here:
Database Configuration File (db.properties)
Database configuration should be done using environmental variables.
The db.properties file contains parameters you can modify to change how dotCMS connects to your database.
Note: Previous versions of dotCMS allowed configuration of the database through the context.xml file in the WEB-INF folder. This file is still supported for backward compatibility, but is deprecated, and will stop being supported in a future release.
System Variables
The following system variables can be set to initialize a datasource using this option:
System Environment | Default Value |
---|---|
DB_DRIVER | org.postgresql.Driver |
DB_BASE_URL | jdbc:postgresql://localhost/dotcms |
DB_USERNAME | |
DB_PASSWORD | |
DB_MAX_TOTAL | 60 |
DB_MIN_IDLE | 10 |
connection_db_max_wait | 60000 |
DB_VALIDATION_QUERY | SELECT 1 |
DB_LEAK_DETECTION_THRESHOLD | 60000 |
DB_DEFAULT_TRANSACTION_ISOLATION | |
DOT_POSTGRES_PUBSUB_JDBC_URL | if primary datasource is postgres, dotCMS attempts to use the same datasource for the PUB/SUB connection. Setting this env variable allows you to override this default behavior. |
PostgreSQL
dotCMS uses Postgres by default and for our internal cloud infrastructure as well. There are some caveats:
- dotCMS recommends using AWS Postgres RDS.
- dotCMS does not test against AWS Aurora Postgres or other cloud provider's managed Postgres services
- The dotAI functionality requires the pg_vector extension to be loaded into the dotcms database. In many managed services, this requires database admin permissions to install. Once the extenstion has been installed, it should be usable by a normal - non- admin database user. When upgrading, we recommend elevating the user permissions while the database changes are made. Once those are complete, youc an revert your dotCMS db user to normal read/write permissions.