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


Answers:


104

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

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

例如,如果您想安装earthdistance,只需使用以下命令:

CREATE EXTENSION earthdistance;

如果要安装扩展名,例如uuid-ossp,带有连字符,则需要用双引号将扩展名引起来:

CREATE EXTENSION "uuid-ossp";

3
为了方便起见,删除扩展名: DROP EXTENSION extension_name [, ...]

58

尽管Evan Carrol的答案是正确的,但请注意,您需要安装postgresql contrib软件包才能使CREATE EXTENSION命令起作用。

在Ubuntu 12.04中,它将如下所示:

sudo apt-get install postgresql-contrib

重新启动PostgreSQL服务器:

sudo /etc/init.d/postgresql restart

所有可用的扩展名都在:

/usr/share/postgresql/9.1/extension/

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


我正在尝试安装citext,但google找不到此页面,并且没有得到这个答案。现在,在此页面上三次提及了citext :-) google,来做索引的事情。
2015年

12

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


8

对于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/

4

每个Postgresql版本可用的扩展名各不相同。如前所述,一种检查可用扩展名的简单方法是:

SELECT * FROM pg_available_extensions;

如果您要查找的扩展名可用,则可以使用以下方法安装它:

CREATE EXTENSION 'extensionName';

或者,如果您要删除它,请使用:

DROP EXTENSION 'extensionName';

使用,psql您还可以使用来检查扩展是否已成功安装\dx,并使用来查找有关该扩展的更多详细信息\dx+ extensioName。它返回有关扩展的其他信息,例如与扩展一起使用的软件包。

如果该扩展在您的Postgres版本中不可用,那么您需要下载必要的二进制文件和库并在以下位置找到它们 /usr/share/conrib



0

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

右键单击桌面,终端,键入:

sudo zypper in postgreql-contrib

输入凭据,然后继续输入:

y

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

CREATE EXTENSION tablefunc;

您现在应该具有该crosstab功能。

我不必重新启动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.