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


回答:


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 [, ...]
2017

58

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

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

sudo apt-get install postgresql-contrib

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

sudo /etc/init.d/postgresql restart

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

/usr/share/postgresql/9.1/extension/

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


citextをインストールしようとしましたが、グーグルがこのページを見つけられず、この回答が表示されませんでした。今、citextはこのページで3回言及されています:-)グーグルに来て、その索引付けをしてください。
ボートコーダー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

psqlターミナルに入れる:

\i <path to contrib files>

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


6
これは9.1より前のバージョンです。9.1以降ではこの方法を使用しないでください。
エヴァンキャロル

0

SUSEをお持ちの場合のダウンロードとインストールの方法。例として、クロス集計を使用できるようにtablefuncモジュールをダウンロードしています。私はPostgreSQL9.6.1を持っています。

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

sudo zypper in postgreql-contrib

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

y

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

CREATE EXTENSION tablefunc;

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.