Installation de l'adminpack PostgreSQL 9.1

12

partout où je vois des guides pour postgre, il semble être sur la version 8.4. Dans ce cas, l'instruction est:

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

cet emplacement n'existe apparemment pas dans le répertoire 9.1.

Quelqu'un peut-il m'indiquer comment le faire fonctionner (nécessaire pour pgadmin)?

Robert
la source

Réponses:

17

le pack d'administration se trouve dans /usr/share/postgresql/9.1/extension

À installer

sudo -u postgres psql

CREATE EXTENSION adminpack;

Voir également la liste des extensions installées select * from pg_extension;

damien
la source
c'était plus ou moins ça. J'essayais d'accomplir cela avec l'utilisateur qui était le propriétaire de la base de données alors qu'en fait, il semble que l'utilisateur par défaut, celui avec le statut de superutilisateur, était requis pour le faire.
Robert
9

La réponse ci-dessus fonctionne très bien. Vous devez juste vous rappeler que vous devez le faire pour chaque base de données, car les extensions sont installées par base de données. Les instructions ci-dessus installent les extensions dans la base de données nommée postgres. Pour l'installer dans votre base de données, passez simplement à votre base de données:

\c yourdb et répétez le processus: CREATE EXTENSION adminpack Sur Ubuntu, le pack d'administration est dans le package postgresql-contrib.

Maddin
la source
1

Tout d'abord, si vous n'avez pas installé contrib:

sudo apt-get install postgresql-contrib

Pour parcourir plusieurs bases de données:

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

En une ligne (ish):

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
la source