PostgreSQL 9.1 Adminpack installieren

12

Überall, wo ich Anleitungen für Postgre sehe, scheint es sich um Version 8.4 zu handeln. In diesem Fall lautet die Anweisung:

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

Dieser Speicherort existiert anscheinend nicht im 9.1-Verzeichnis.

Kann mir jemand zeigen, wie es funktioniert (benötigt für pgadmin)?

Robert
quelle

Antworten:

17

Admin Pack finden Sie in /usr/share/postgresql/9.1/extension

Installieren

sudo -u postgres psql

CREATE EXTENSION adminpack;

Hier finden Sie auch eine Liste der installierten Erweiterungen select * from pg_extension;

damien
quelle
das war mehr oder weniger es. Ich habe versucht, dies mit dem Benutzer zu erreichen, der der Eigentümer der Datenbank war, obwohl es tatsächlich so aussieht, als müsste der Standardbenutzer, der Superuser-Status, dies tun.
Robert
9

Die Antwort oben funktioniert großartig. Sie müssen sich nur daran erinnern, dass Sie dies für jede Datenbank tun müssen, da die Erweiterungen pro Datenbank installiert werden. Die obigen Anweisungen installieren die Erweiterungen in der Datenbank mit dem Namen postgres. Um es in Ihrer Datenbank zu installieren, wechseln Sie einfach zu Ihrer Datenbank:

\c yourdb und wiederhole den Vorgang: CREATE EXTENSION adminpack Unter Ubuntu befindet sich das Admin-Paket im postgresql-contrib-Paket.

Maddin
quelle
1

Erstens, wenn Sie nicht installiert haben contrib:

sudo apt-get install postgresql-contrib

So durchlaufen Sie mehrere Datenbanken:

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

Als One (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
quelle