initlocation creates a new PostgreSQL secondary database storage area. See the discussion under CREATE DATABASE [create_database(7)] 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.
To create a database in an alternate location, using an environment variable:
$ export PGDATA2=/opt/postgres/dataStop 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