web-dev-qa-db-ja.com

PostgreSQL 9.1以降でモジュールをインポートしたり、拡張機能をインストールしたりするにはどうすればよいですか?

まず、9.1 +を使用していない場合は、 この質問を参照

PostgreSQL 9.1の拡張機能をインストールするにはどうすればよいですか?

78
Evan Carroll

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";
96
Evan Carroll

Evan Carrolの答えは正しいですが、CREATE EXTENSIONコマンドが機能するためにはpostgresql contribパッケージをインストールする必要があることに注意してください。

Ubuntu 12.04では、次のようになります。

Sudo apt-get install postgresql-contrib

Postgresqlサーバーを再起動します。

Sudo /etc/init.d/postgresql restart

利用可能なすべての拡張機能は次のとおりです。

/usr/share/postgresql/9.1/extension/

これで、CREATE EXTENSIONコマンドを実行できます。

53
tani-rokk

コアPostgreSQL開発チームによって維持および提供される拡張機能に加えて、サードパーティから利用可能な拡張機能があります。特に、その目的専用のサイトがあります: http://www.pgxn.org/

11
kgrittn

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
matson kepson

SUSEを使用している場合のダウンロードおよびインストール方法。例として、クロス集計を使用できるようにtablefuncモジュールをダウンロードしています。 PostgreSQL 9.6.1があります。

デスクトップ、ターミナルを右クリックして、次を入力します。

Sudo zypper in postgreql-contrib

資格情報を入力し、次を入力して続行します。

y

クエリを実行します(pgAdminIIIから実行しました):

CREATE EXTENSION tablefunc;

これでcrosstab関数ができました。

再起動する必要はありませんでした。

0
mountainclimber

Postgresqlの各バージョンで利用可能な拡張機能は異なります。既に説明したように、利用可能な拡張機能を確認する簡単な方法は次のとおりです。

SELECT * FROM pg_available_extensions;

お探しの拡張機能が利用可能な場合は、次を使用してインストールできます。

CREATE EXTENSION 'extensionName';

または、ドロップしたい場合:

DROP EXTENSION 'extensionName';

psqlを使用すると、\dxを使用して拡張機能が正常にインストールされたかどうかをさらに確認でき、\dx+ extensioNameを使用して拡張機能の詳細を確認できます。どのパッケージがそれで使用されているかなど、拡張機能に関する追加情報を返します。

使用している拡張機能がPostgresバージョンで利用できない場合は、必要なバイナリファイルとライブラリをダウンロードし、/usr/share/conribでそれらを見つける必要があります。

0
Marios Simou

Psqlターミナルへの入力:

\i <path to contrib files>

ubuntuでは通常/usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sqlです

0