createdb accepts the following command-line arguments:
dbname
Specifies the name of the database to be created. The name must be unique among all PostgreSQL
databases in this cluster. The default is to create a database with the same name as the current
system user.
description
Specifies a comment to be associated with the newly created database.
-Dtablespace--tablespace=tablespace
Specifies the default tablespace for the database. (This name is processed as a double-quoted
identifier.)
-e--echo
Echo the commands that createdb generates and sends to the server.
-Eencoding--encoding=encoding
Specifies the character encoding scheme to be used in this database. The character sets supported by
the PostgreSQL server are described in Section 23.3.1.
-llocale--locale=locale
Specifies the locale to be used in this database. This is equivalent to specifying --lc-collate,
--lc-ctype, and --icu-locale to the same value. Some locales are only valid for ICU and must be set
with --icu-locale.
--lc-collate=locale
Specifies the LC_COLLATE setting to be used in this database.
--lc-ctype=locale
Specifies the LC_CTYPE setting to be used in this database.
--builtin-locale=locale
Specifies the locale name when the builtin provider is used. Locale support is described in
Section 23.1.
--icu-locale=locale
Specifies the ICU locale ID to be used in this database, if the ICU locale provider is selected.
--icu-rules=rules
Specifies additional collation rules to customize the behavior of the default collation of this
database. This is supported for ICU only.
--locale-provider={builtin|libc|icu}
Specifies the locale provider for the database's default collation.
-Oowner--owner=owner
Specifies the database user who will own the new database. (This name is processed as a double-quoted
identifier.)
-Sstrategy--strategy=strategy
Specifies the database creation strategy. See CREATE DATABASE STRATEGY for more details.
-Ttemplate--template=template
Specifies the template database from which to build this database. (This name is processed as a
double-quoted identifier.)
-V--version
Print the createdb version and exit.
-?--help
Show help about createdb command line arguments, and exit.
The options -D, -l, -E, -O, and -T correspond to options of the underlying SQL command CREATEDATABASE;
see there for more information about them.
createdb also accepts the following command-line arguments for connection parameters:
-hhost--host=host
Specifies the host name of the machine on which the server is running. If the value begins with a
slash, it is used as the directory for the Unix domain socket.
-pport--port=port
Specifies the TCP port or the local Unix domain socket file extension on which the server is
listening for connections.
-Uusername--username=username
User name to connect as.
-w--no-password
Never issue a password prompt. If the server requires password authentication and a password is not
available by other means such as a .pgpass file, the connection attempt will fail. This option can be
useful in batch jobs and scripts where no user is present to enter a password.
-W--password
Force createdb to prompt for a password before connecting to a database.
This option is never essential, since createdb will automatically prompt for a password if the server
demands password authentication. However, createdb will waste a connection attempt finding out that
the server wants a password. In some cases it is worth typing -W to avoid the extra connection
attempt.
--maintenance-db=dbname
Specifies the name of the database to connect to when creating the new database. If not specified,
the postgres database will be used; if that does not exist (or if it is the name of the new database
being created), template1 will be used. This can be a connection string. If so, connection string
parameters will override any conflicting command line options.