PostgreSQL 9.1 установить пакет администратора


12

везде я вижу руководства для postgre, похоже, что на версии 8.4. В этом случае инструкция:

sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

это местоположение не существует в каталоге 9.1.

Может кто-нибудь указать мне, как заставить его работать (необходимо для pgadmin)?

Ответы:


17

пакет администратора можно найти в /usr/share/postgresql/9.1/extension

Установить

sudo -u postgres psql

CREATE EXTENSION adminpack;

Также, чтобы увидеть список установленных расширений select * from pg_extension;


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

9

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

\c yourdb и повторите процесс: в CREATE EXTENSION adminpack Ubuntu пакет администратора находится в пакете postgresql-contrib.


1

Во-первых, если вы не установили contrib:

sudo apt-get install postgresql-contrib

Чтобы перебрать несколько баз данных:

sudo su postgres;
for db in $(psql -c "SELECT datname FROM pg_database WHERE datistemplate = false;" | sed '1,2d' | head -n -2 | grep -v '^ postgres$'); do
  echo "Adding adminpack to ${db}"
  psql -c "CREATE EXTENSION adminpack;" ${db};
done

Как один (иш) лайнер:

sudo su postgres;
for db in $(psql -c "SELECT datname FROM pg_database WHERE datistemplate = false;" | sed '1,2d' | head -n -2 | grep -v '^ postgres$'); do psql -c "CREATE EXTENSION adminpack;" ${db}; done
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.