A aplicação initlocation cria uma nova área secundária de armazenamento de bancos de dados do PostgreSQL. Veja em CREATE DATABASE a explicação sobre como gerenciar e usar áreas de armazenamento secundárias. Se o argumento não tiver uma barra (/), e não for um caminho válido, pressupõe-se ser uma variável de ambiente, a qual é referenciada. Veja os exemplos no final.
Para poder usar este comando é necessário estar autenticado no sistema operacional (usando o comando su, por exemplo) como um superusuário do banco de dados.
Para criar um banco de dados em um local alternativo, usando uma variável de ambiente:
$ export PGDATA2=/opt/postgres/data
O postmaster deve ser parado e reiniciado para que este enxergue a variável de ambiente PGDATA2. O sistema deve ser configurado de forma que o postmaster enxergue PGDATA2 toda vez que iniciar. Por fim:
$ initlocation PGDATA2 $ createdb -D PGDATA2 testdb
Como alternativa, se os caminhos absolutos estiverem permitidos pode ser feito:
$ initlocation /opt/postgres/data $ createdb -D /opt/postgres/data/testdb testdb