• The hostname for the Postgres database server
  • The username/password for the Postgres database server
  • The name of the database to use within the Postgres database server

Add the following to a .env file in your Cube project:


Environment VariableDescriptionPossible ValuesRequiredSupports multiple data sources?
CUBEJS_DB_HOSTThe host URL for a databaseA valid database host URL
CUBEJS_DB_PORTThe port for the database connectionA valid port number
CUBEJS_DB_NAMEThe name of the database to connect toA valid database name
CUBEJS_DB_USERThe username used to connect to the databaseA valid database username
CUBEJS_DB_PASSThe password used to connect to the databaseA valid database password
CUBEJS_DB_SSLIf true, enables SSL encryption for database connections from Cubetrue, false
CUBEJS_CONCURRENCYThe number of concurrent connections each queue has to the database. Default is 2A valid number
CUBEJS_DB_MAX_POOLThe maximum number of concurrent database connections to pool. Default is 8A valid number


Measures of type countDistinctApprox can not be used in pre-aggregations when using Postgres as a source database.

To learn more about pre-aggregation build strategies, head here.

FeatureWorks with read-only mode?Is default?
Export Bucket--

By default, Postgres uses batching to build pre-aggregations.


No extra configuration is required to configure batching for Postgres.

Export Bucket

Postgres does not support export buckets.

To enable SSL-encrypted connections between Cube and Postgres, set the CUBEJS_DB_SSL environment variable to true. For more information on how to configure custom certificates, please check out Enable SSL Connections to the Database.

Use CUBEJS_DB_SSL=true to enable SSL if you have SSL enabled for your RDS cluster. Download the new certificate here, and provide the contents of the downloaded file to CUBEJS_DB_SSL_CA. All other SSL-related environment variables can be left unset. See the SSL section for more details. More info on AWS RDS SSL can be found here.

You can connect to an SSL-enabled MySQL database by setting CUBEJS_DB_SSL to true. You may also need to set CUBEJS_DB_SSL_SERVERNAME, depending on how you are connecting to Cloud SQL.

Unless you're using a Private or Shield Heroku Postgres database, Heroku Postgres does not currently support verifiable certificates. Here is the description of the issue from Heroku.

As a workaround, you can set rejectUnauthorized option to false in the Cube Postgres driver:

const PostgresDriver = require('@cubejs-backend/postgres-driver');
module.exports = {
  driverFactory: () =>
    new PostgresDriver({
      ssl: {
        rejectUnauthorized: false,

Did you find this page useful?