Как настроить приглашение PostgreSQL с помощью psqlrc в Ubuntu 14.04

Вступление

Файл psqlrc настраивает поведение клиента интерактивной командной строки psql. psql позволяет вам вводить запросы в интерактивном режиме, выдавать их PostgreSQL и просматривать результаты запроса. Файл поставляется в трех вариантах:

1) Общесистемный файл psqlrc находится в каталоге конфигурации системы PostgreSQL.

Расположение этого каталога зависит от вашей установки PostgreSQL, но его можно найти с помощью инструмента pg_config.

pg_config --sysconfdir

2) Файл пользователя psqlrc найден или может быть создан в домашнем каталоге пользователя.

touch ~/.psqlrc

3) Файлы psqlrc, зависящие от версии, могут быть созданы при наличии нескольких установок PostgreSQL. Просто добавьте номер версии в конец.

touch ~/.psqlrc-9.1
touch ~/.psqlrc-9.3

Монтаж

Прежде чем вы сможете использовать psql, у вас должен быть установлен PostgreSQL.

sudo apt-get install -y postgresql postgresql-contrib

Это установит PostgreSQL 9.3. Теперь вы можете переключиться на пользователя postgres и запустить psql.

su - postgres

psql

Это должно отобразить стандартное приглашение psql.

psql (9.3.4)
Type "help" for help.

postgres=#

Редактирование подсказки

Редактируя пользовательский файл psqlrc, вы можете настроить главное приглашение psql (PROMPT1) и создать полезные ярлыки. Отредактируйте файл .psqlrc в любом редакторе, чтобы добавить следующие строки (здесь мы будем использовать vim).

vi ~/.psqlrc

\set PROMPT1 '%M:%> %n@%/%R%#%x '
  • % M относится к имени хоста сервера базы данных - это «[local]», если соединение происходит через сокет домена Unix

  • %> относится к порту прослушивания

  • % n относится к имени пользователя сеанса

  • % / ссылается на текущую базу данных

  • % R указывает на то, находитесь ли вы в однострочном режиме (^) или отключены (!), Но обычно =

  • % # указывает, являетесь ли вы суперпользователем (#) или обычным пользователем (>)

  • % x относится к статусу транзакции - обычно пусто, если не в блоке транзакции (*)

Если вы войдете в систему с именем хоста «trident» как пользователь «john» и получите доступ к базе данных «orange» как обычный пользователь, вы увидите

[trident]:5432 john@orange=>

Вы также можете редактировать дополнительную подсказку psql (PROMPT2).

postgres-#

Вы столкнетесь с дополнительным приглашением, если у вас есть незаконченный запрос.

postgres=# select * from
postgres-# peel limit 1;

Редактирование вторичного приглашения psql в основном аналогично редактированию первичного приглашения psql.

\set PROMPT2 '%M %n@%/%R %# '
  • % R представлен символом ’-’ вместо ’=’

Когда в середине транзакции на компьютере с именем хоста «trident» в качестве пользователя «john» и доступом к базе данных «orange» в качестве обычного пользователя, вы увидите

[trident]:5432 john@orange=> select * from
[trident] john@orange-> peel limit 1;

Конечно, вы можете добавить, удалить или изменить эти параметры, чтобы включить полезную для вас информацию.

Цвета

Цвет подсказки можно редактировать с помощью psqlrc. Чтобы сделать номер порта красным, добавьте следующее.

\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '

Вы можете использовать различные цвета - измените значение 31 на:

  • 32 для зеленого

  • 33 для желтого

  • 34 для синего

  • 35 для пурпурного

  • 36 для голубого

  • 37 для белых

Показать варианты

При запросе нулевых значений базы данных PostgreSQL возвращается пустое значение. Если вместо этого вы хотите, чтобы он возвращал значение NULL, вы можете отредактировать параметр null.

\pset null '[null]'

Чтобы завершить ключевые слова SQL, такие как «SELECT» и «FROM», в верхнем или нижнем регистре, вы можете установить опцию COMPKEYWORDCASE с опциями выше или ниже.

\set COMP_KEYWORD_CASE upper

Чтобы во всех запросах отображалось время запроса, используйте опцию синхронизации.

\timing

Как и в приглашении bash, в приглашении psql вы можете нажать клавишу со стрелкой вверх, чтобы получить доступ к ранее выполненным командам через историю. Чтобы установить размер истории, вы можете отредактировать HISTSIZE.

\set HISTSIZE 2000

При запросе больших таблиц иногда выводит текст, который трудно прочитать. Вы можете переключиться на расширенный формат таблицы.

\x auto

Вы также можете установить подробность отчетов об ошибках с опциями «по умолчанию», «подробный» или «краткий».

\set VERBOSITY verbose

Вы также можете настроить ярлыки с помощью команды set. Если вы хотите настроить ярлык для просмотра версии PostgreSQL и доступных расширений, добавьте следующее:

\set version 'SELECT version();'
\set extensions 'select * from pg_available_extensions;'

Если вы хотите отображать сообщения при запуске приглашения psql, вы можете использовать команду echo.

\echo 'Welcome to PostgreSQL\n'

Наконец, редактирование psqlrc создает выходные данные при запуске psql. Если вы хотите скрыть это, установите флаг QUIET вверху и внизу файла psql.

Заворачивать

Полный файл ниже.

\set QUIET 1

\set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x '

\set PROMPT2 '%M %n@%/%R %# '

\pset null '[null]'

\set COMP_KEYWORD_CASE upper

\timing

\set HISTSIZE 2000

\x auto

\set VERBOSITY verbose

\set QUIET 0

\echo 'Welcome to PostgreSQL! \n'
\echo 'Type :version to see the PostgreSQL version. \n'
\echo 'Type :extensions to see the available extensions. \n'
\echo 'Type \\q to exit. \n'
\set version 'SELECT version();'
\set extensions 'select * from pg_available_extensions;'

Теперь, когда вы запустите psql, вы увидите другое приглашение.

$ psql

Welcome to PostgreSQL!

Type :version to see the version.

Type :extensions to see the available extensions.

Type \q to exit.

psql (9.3.4)
Type "help" for help.

[local]:5432 postgres@postgres=#

Есть много других настроек, которые вы можете сделать, но это должно стать хорошим началом для улучшения вашего опыта psql.