Database Setup


You must have a properly configured Postgres installation for this to work. If you have a fresh install of Postgres on Ubuntu then you may want to configure the postgres user password to complete the postgres setup

Install PostgreSQL

Data Cube is using PostgreSQL


Ubuntu 18.04 includes packages for PostgreSQL 10. On earlier versions of Ubuntu you can use the repo as described on their download page.

Install postgres using apt:

sudo apt install postgresql-10 postgresql-client-10 postgresql-contrib-10

Configure the postgres user password to complete the postgres setup


An easy to install version of PostgreSQL can be downloaded from It can install and run as an unprivileged windows user.

After installing, launch PostgreSQLPortable.exe (and place a shortcut in the windows Startup menu).

To prepare the database for first use, enter the following commands in the PostgrSQL Portable window, substituting “u12345” with your windows login user-ID:

create role u12345 superuser login;
create database datacube;


Install from

Create Database

If you have existing Postgres authentication:

createdb datacube

or specify connection details manually:

createdb -h <hostname> -U <username> datacube


You can also delete the database by running dropdb datacube. This step is not reversible.

Create Configuration File

Datacube looks for a configuration file in ~/.datacube.conf or in the location specified by the DATACUBE_CONFIG_PATH environment variable. The file has this format:

db_database: datacube

# A blank host will use a local socket. Specify a hostname (such as localhost) to use TCP.

# Credentials are optional: you might have other Postgres authentication configured.
# The default username otherwise is the current user id.
# db_username:
# db_password:

Uncomment and fill in lines as required.

See also Runtime Configuration

Initialise the Database Schema

The datacube system init tool can create and populate the Data Cube database schema

datacube -v system init

datacube system

Initialise the database

datacube system [OPTIONS]


--default-types, --no-default-types

Add default types? (default: true)

--init-users, --no-init-users

Include user roles and grants. (default: true)

--recreate-views, --no-recreate-views

Recreate dynamic views

--rebuild, --no-rebuild

Rebuild all dynamic fields (caution: slow)

--lock-table, --no-lock-table

Allow table to be locked (eg. while creating missing indexes)