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

Eva*_*oll 79 postgresql postgresql-9.1

首先,如果您不使用9.1+,请参阅此问题.

如何安装PostgreSQL 9.1的扩展?

Eva*_*oll 98

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
Run Code Online (Sandbox Code Playgroud)

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

CREATE EXTENSION earthdistance;
Run Code Online (Sandbox Code Playgroud)

如果您想在其名称中安装带有连字符的扩展名,例如uuid-ossp,您需要用双引号括起扩展名:

CREATE EXTENSION "uuid-ossp";
Run Code Online (Sandbox Code Playgroud)

  • 为方便起见,删除扩展名:`DROP EXTENSION extension_name [,...]` (2认同)

tan*_*okk 53

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

在Ubuntu 12.04中它会是这样的:

sudo apt-get install postgresql-contrib
Run Code Online (Sandbox Code Playgroud)

重启postgresql服务器:

sudo /etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)

所有可用的扩展名都在:

/usr/share/postgresql/9.1/extension/
Run Code Online (Sandbox Code Playgroud)

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


kgr*_*ttn 11

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


mat*_*son 5

对于postgrersql10

我已经解决了

yum install postgresql10-contrib
Run Code Online (Sandbox Code Playgroud)

不要忘记激活postgresql.conf中的扩展

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
Run Code Online (Sandbox Code Playgroud)

然后当然重启

systemctl restart postgresql-10.service 
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到所有需要的扩展

/usr/pgsql-10/share/extension/
Run Code Online (Sandbox Code Playgroud)


Mar*_*mou 5

每个版本的 Postgresql 可用的扩展有所不同。正如已经提到的,检查哪些扩展可用的简单方法是:

SELECT * FROM pg_available_extensions;
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找的扩展可用,您可以使用以下命令安装它:

CREATE EXTENSION 'extensionName';
Run Code Online (Sandbox Code Playgroud)

或者如果你想删除它使用:

DROP EXTENSION 'extensionName';
Run Code Online (Sandbox Code Playgroud)

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

如果该扩展在您的 Postgres 版本中不可用,那么您需要下载必要的二进制文件和库并将其定位于/usr/share/conrib

  • 去掉引号。这有效:`create extension intarray;` 这*不*:`create extension 'intarray';` (2认同)