如何在PostgreSQL 9.1+;中导入模块或安装扩展;?

如何在PostgreSQL 9.1+;中导入模块或安装扩展;?,postgresql,postgresql-9.1,Postgresql,Postgresql 9.1,首先,如果您没有使用9.1+,请。 如何安装PostgreSQL 9.1的扩展?Postgrseql 9.1提供了一个新命令。您应该使用它来安装模块 。其中包括, adminpack , auth_delay , auto_explain , btree_gin , btree_gist , chkpass , citext , cube , dblink , dict_int , dict_xsyn , dummy_seclabel , earthdistance , file_fdw , f

首先,如果您没有使用9.1+,请。


如何安装PostgreSQL 9.1的扩展?

Postgrseql 9.1提供了一个新命令。您应该使用它来安装模块

。其中包括,

adminpack , auth_delay , auto_explain , btree_gin , btree_gist
, chkpass , citext , cube , dblink , dict_int
, dict_xsyn , dummy_seclabel , earthdistance , file_fdw , fuzzystrmatch
, hstore , intagg , intarray , isn , lo
, ltree , oid2name , pageinspect , passwordcheck , pg_archivecleanup
, pgbench , pg_buffercache , pgcrypto , pg_freespacemap , pgrowlocks
, pg_standby , pg_stat_statements , pgstattuple , pg_test_fsync , pg_trgm
, pg_upgrade , seg , sepgsql , spi , sslinfo , tablefunc
, test_parser , tsearch2 , unaccent , uuid-ossp , vacuumlo
, xml2
例如,如果要安装,只需使用以下命令:

CREATE EXTENSION earthdistance;
如果要安装名称中带有连字符的扩展,如
uuid ossp
,则需要将扩展名称括在双引号中:

CREATE EXTENSION "uuid-ossp";
  • 现在,您可以更轻松地卸载模块,请参阅
    删除扩展名
    。您还可以获得扩展列表,并且对版本号有基本的支持

除了核心PostgreSQL开发团队维护和提供的扩展之外,还有第三方提供的扩展。值得注意的是,有一个专门用于此目的的站点:

进入psql终端put:

\i <path to contrib files>
\i

在ubuntu中,它通常是
/usr/share/postgreslq//contrib/.sql

虽然Evan Carrol的答案是正确的,但请注意,您需要安装postgresql contrib包,以便CREATE EXTENSION命令工作

在Ubuntu 12.04中,它是这样的:

sudo apt-get install postgresql-contrib
重新启动postgresql server:

sudo /etc/init.d/postgresql restart
所有可用的扩展都位于:

/usr/share/postgresql/9.1/extension/

现在您可以运行CREATE EXTENSION命令。

如果您有SUSE,如何下载和安装。例如,我正在下载tablefunc模块,以便使用交叉表。我有PostgreSQL 9.6.1

右键单击桌面、终端、类型:

sudo zypper in postgreql-contrib
输入凭据,通过键入以下内容继续:

y
运行查询(我从pgAdminIII运行了我的):

您现在应该有了
交叉表
功能


我不必重新启动。

对于postgrersql10

我已经解决了

yum install postgresql10-contrib
别忘了在postgresql.conf中激活扩展

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
然后当然重新开始

systemctl restart postgresql-10.service 
您可以在这里找到所有需要的扩展

/usr/pgsql-10/share/extension/

每个版本的Postgresql都有不同的扩展。如前所述,检查哪些扩展可用的简单方法是:

SELECT * FROM pg_available_extensions;
如果您要查找的扩展可用,则可以使用以下方法安装:

CREATE EXTENSION 'extensionName';
或者,如果要删除它,请使用:

DROP EXTENSION 'extensionName';
使用
psql
还可以使用
\dx
检查扩展是否已成功安装,并使用
\dx+extensioName
查找有关扩展的更多详细信息。它返回关于扩展的附加信息,比如与它一起使用的包


如果您的Postgres版本中没有扩展名,那么您需要下载必要的二进制文件和库,并将其定位到9.1之前版本的
/usr/share/conrib

。不要在9.1+中使用这种方法。我试图安装citext,但google找不到这个页面,也没有找到这个答案。现在,citext在这个页面上被提到了三次:-)来谷歌吧,做那个索引的事情。注意,在pgsql bin中添加
vacuumlo
脚本也需要这个包。此外,您可能需要使用
ln-s
将vacuumlo链接到
/usr/bin
。为方便起见,删除扩展名:
删除扩展名[,…]
DROP EXTENSION 'extensionName';