createdb — создать базу данных PostgreSQL
createdb [параметр-подключения...] [параметр...] [имя_бд
[описание]]
createdb создаёт базу данных PostgreSQL.
Чаще всего пользователь, выполняющий эту команду, назначается владельцем создаваемой базы данных. Однако можно указать владельца явным образом с помощью флага -O, если у текущего пользователя достаточно привилегий.
createdb это обёртка для SQL-команды CREATE DATABASE. Создание баз данных с её помощью по сути не отличается от выполнения того же действия при обращении к серверу другими способами.
createdb принимает в качестве аргументов:
имя_бдУказывает имя создаваемой базы. Имя должно быть уникальным в рамках кластера PostgreSQL. По умолчанию в качестве имени базы данных берётся имя текущего системного пользователя.
описаниеДобавляет комментарий к создаваемой базе.
-D табличное_пространство--tablespace=табличное_пространствоУказывает табличное пространство, используемое по умолчанию. Имя пространства обрабатывается аналогично идентификаторам, заключённым в двойные кавычки.
-e--echoВывести команды к серверу, генерируемые при выполнении createdb.
-E кодировка--encoding=кодировкаУказывает кодировку базы данных. Поддерживаемые сервером PostgreSQL кодировки описаны в Подразделе 23.3.1.
-l локаль--locale=локальУказывает локаль базы данных. Установка того же значения для --lc-collate, --lc-ctype и --icu-locale разнозначна установке этого параметра. Некоторые локали можно указать только для ICU и только в параметре --icu-locale.
--lc-collate=локальУстанавливает параметр LC_COLLATE для базы данных.
--lc-ctype=локальУстанавливает параметр LC_CTYPE для базы данных.
--builtin-locale=локальУказывает имя локали при использовании провайдера builtin. Поддержка локалей описана в Разделе 23.1.
--icu-locale=локальУказывает идентификатор локали ICU, которая будет использоваться в этой БД, если выбран провайдер локалей ICU.
--icu-rules=правилаУказывает дополнительные правила для настройки поведения сортировки по умолчанию. Параметр поддерживается только для ICU.
--locale-provider={builtin|libc|icu}Указывает провайдера локали для основного правила сортировки базы данных.
-O владелец--owner=владелецУказывает пользователя в качестве владельца создаваемой базы. Имя пользователя обрабатывается аналогично идентификаторам, заключённым в двойные кавычки.
-S стратегия--strategy=стратегияУказывает стратегию создания базы данных. За подробностями обратитесь к CREATE DATABASE STRATEGY.
-T шаблон--template=шаблонУказывает шаблон, на основе которого будет создана база данных. Имя шаблона обрабатывается аналогично идентификаторам, заключённым в двойные кавычки.
-V--versionВывести версию createdb и прервать дальнейшее исполнение.
-?--helpВывести помощь по команде createdb и прервать выполнение.
Флаги -D, -l, -E, -O и -T по назначению соответствуют флагам SQL-команды CREATE DATABASE.
createdb также принимает из командной строки параметры подключения:
-h сервер--host=серверУказывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета.
-p порт--port=портУказывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения.
-U имя_пользователя--username=имя_пользователяИмя пользователя, под которым производится подключение.
-w--no-passwordНе выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.
-W--passwordПринудительно запрашивать пароль перед подключением к базе данных.
Это несущественный параметр, так как createdb запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако чтобы понять это, createdb лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести -W, чтобы исключить эту ненужную попытку подключения.
--maintenance-db=имя_бдУказывает имя опорной базы данных, к которой будет произведено подключение для создания новой. Если имя не указано, будет выбрана база postgres, а если она не существует — template1. В данном аргументе может задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке.
PGDATABASEЕсли установлено и не переопределено в командной строке, задаёт имя создаваемой базы данных.
PGHOSTPGPORTPGUSERПараметры подключения по умолчанию. PGUSER указывает имя пользователя при создании базы данных, если не указано явно в командной строке или в переменной окружения PGDATABASE.
PG_COLORВыбирает вариант использования цвета в диагностических сообщениях. Возможные значения: always (всегда), auto (автоматически) и never (никогда).
Эта утилита, как и большинство других утилит PostgreSQL, также использует переменные среды, поддерживаемые libpq (см. Раздел 32.15).
В случае возникновения трудностей обратитесь к CREATE DATABASE и psql. При диагностике нужно учитывать, что при запуске утилиты используются значения переменных окружения и параметров подключения по умолчанию libpq.
Создать базу данных demo на сервере, используемом по умолчанию, можно так:
$createdb demo
Создать базу demo на сервере eden, порт 5000, из шаблонной базы template0 можно такой командой командной строки, за которой стоит следующая команда SQL:
$createdb -p 5000 -h eden -T template0 -e demoCREATE DATABASE demo TEMPLATE template0;