我看到的所有 postgre 指南似乎都使用 8.4 版本。在这种情况下,说明如下:
sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql
该位置显然不存在于 9.1 目录中。
有人能告诉我如何让它工作吗(pgadmin 所需)?
答案1
管理包可以在/usr/share/postgresql/9.1/extension
安装
sudo -u postgres psql
CREATE EXTENSION adminpack;
还可以查看已安装扩展的列表select * from pg_extension;
答案2
上面的答案很有效。您只需记住,您需要为每个数据库执行此操作,因为扩展是按数据库安装的。上面的说明在名为的数据库中安装扩展postgres
。要将其安装在您的数据库中,只需切换到您的数据库:
\c yourdb
并重复该过程:
CREATE EXTENSION adminpack
在 Ubuntu 上,管理包位于 postgresql-contrib 包中。
答案3
首先,如果您尚未安装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