initlocation creates a new PostgreSQL secondary database storage area. See the discussion under CREATE DATABASE about how to manage and use secondary storage areas. If the argument does not contain a slash and is not valid as a path, it is assumed to be an environment variable, which is referenced. See the examples at the end.
In order to use this command you must be logged in (using su, for example) as the database superuser.
To create a database in an alternate location, using an environment variable:
$ export PGDATA2=/opt/postgres/data
Stop and start postmaster so it sees the PGDATA2 environment variable. The system must be configured so the postmaster sees PGDATA2 every time it starts. Finally:
$ initlocation PGDATA2 $ createdb -D PGDATA2 testdb
Alternatively, if you allow absolute paths you could write:
$ initlocation /opt/postgres/data $ createdb -D /opt/postgres/data/testdb testdb