Instalacja pakietu administracyjnego PostgreSQL 9.1

12

wszędzie gdzie widzę przewodniki po postgre, wydaje się, że jest w wersji 8.4. W takim przypadku instrukcja jest następująca:

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

ta lokalizacja najwyraźniej nie istnieje w katalogu 9.1.

Czy ktoś może mi wskazać, jak to działa (potrzebne dla pgadmin)?

Robert
źródło

Odpowiedzi:

17

pakiet administratora można znaleźć w /usr/share/postgresql/9.1/extension

Żeby zainstalować

sudo -u postgres psql

CREATE EXTENSION adminpack;

Zobacz także listę zainstalowanych rozszerzeń select * from pg_extension;

damien
źródło
to było mniej więcej to. Próbowałem to osiągnąć z użytkownikiem, który był właścicielem bazy danych, podczas gdy w rzeczywistości wydaje się, że był do tego wymagany użytkownik domyślny, ten ze statusem administratora.
Robert
9

Powyższa odpowiedź działa świetnie. Musisz tylko pamiętać, że musisz to zrobić dla każdej bazy danych, ponieważ rozszerzenia są instalowane dla każdej bazy danych. Powyższe instrukcje instalują rozszerzenia w bazie danych o nazwie postgres. Aby zainstalować go w bazie danych, wystarczy przejść do bazy danych:

\c yourdb i powtórz proces: w CREATE EXTENSION adminpack systemie Ubuntu pakiet administratora znajduje się w pakiecie postgresql-contrib.

Maddin
źródło
1

Po pierwsze, jeśli nie zainstalowałeś contrib:

sudo apt-get install postgresql-contrib

Aby wykonać iterację w kilku bazach danych:

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

Jako jeden (ish) -liner:

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
msanford
źródło