Làm cách nào để nhập mô-đun hoặc cài đặt tiện ích mở rộng trong PostgreSQL 9.1+?


Câu trả lời:


104

Postgrseql 9.1 cung cấp một lệnh mới CREATE EXTENSION. Bạn nên sử dụng nó để cài đặt các mô-đun.

Các mô-đun được cung cấp trong 9.1 có thể được tìm thấy tại đây. . Bao gồm,

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

Ví dụ, nếu bạn muốn cài đặt earthdistance, chỉ cần sử dụng lệnh này:

CREATE EXTENSION earthdistance;

Nếu bạn muốn cài đặt một tiện ích mở rộng có dấu gạch ngang trong tên của nó, chẳng hạn như uuid-ossp, bạn cần đặt tên tiện ích mở rộng trong dấu ngoặc kép:

CREATE EXTENSION "uuid-ossp";

3
Để thuận tiện, để xóa tiện ích mở rộng: DROP EXTENSION extension_name [, ...]
Stew

58

Mặc dù câu trả lời của Evan Carrol là đúng, xin lưu ý rằng bạn cần cài đặt gói đóng góp postgresql để lệnh CREATE EXTENSION hoạt động.

Trong Ubuntu 12.04, nó sẽ như thế này:

sudo apt-get install postgresql-contrib

Khởi động lại máy chủ postgresql:

sudo /etc/init.d/postgresql restart

Tất cả tiện ích mở rộng có sẵn trong:

/usr/share/postgresql/9.1/extension/

Bây giờ bạn có thể chạy lệnh CREATE EXTENSION.


Tôi đã cố gắng cài đặt citext, nhưng google không tìm thấy trang này và câu trả lời này không hiển thị. Bây giờ citext được đề cập ba lần trên trang này :-) Hãy lên google, làm điều đó lập chỉ mục.
boatcoder

12

Ngoài các tiện ích mở rộng được duy trì và cung cấp bởi nhóm phát triển PostgreSQL cốt lõi, còn có các tiện ích mở rộng có sẵn từ các bên thứ ba. Đáng chú ý, có một trang web dành riêng cho mục đích đó: http://www.pgxn.org/


8

Đối với người đăng bàiql10

Tôi đã giải quyết nó với

yum install postgresql10-contrib

Đừng quên kích hoạt các tiện ích mở rộng trong postgresql.conf

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

sau đó tất nhiên khởi động lại

systemctl restart postgresql-10.service 

tất cả các tiện ích mở rộng cần thiết bạn có thể tìm thấy ở đây

/usr/pgsql-10/share/extension/

4

Các phần mở rộng có sẵn cho mỗi phiên bản Postgresql khác nhau. Một cách dễ dàng để kiểm tra những tiện ích mở rộng nào khả dụng, như đã được đề cập:

SELECT * FROM pg_available_extensions;

Nếu tiện ích mở rộng bạn đang tìm kiếm có sẵn, bạn có thể cài đặt nó bằng cách sử dụng:

CREATE EXTENSION 'extensionName';

hoặc nếu bạn muốn bỏ nó, hãy sử dụng:

DROP EXTENSION 'extensionName';

Với psqlbạn bổ sung có thể kiểm tra nếu phần mở rộng đã được cài đặt thành công sử dụng \dx, và tìm thêm chi tiết về việc gia hạn sử dụng \dx+ extensioName. Nó trả về thông tin bổ sung về tiện ích mở rộng, như gói nào được sử dụng với nó.

Nếu tiện ích mở rộng không có sẵn trong phiên bản Postgres của bạn, thì bạn cần tải xuống các tệp và thư viện nhị phân cần thiết và định vị chúng tại /usr/share/conrib


0

Vào thiết bị đầu cuối psql đặt:

\i <path to contrib files>

trong ubuntu nó thường là /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql


6
Đó là cho trước 9.1. Không sử dụng phương pháp này trong 9.1+.
Evan Carroll

0

Cách tải xuống và cài đặt nếu bạn có SUSE. Như một ví dụ, tôi đang tải xuống mô-đun tablefunc để tôi có thể sử dụng bảng chữ cái. Tôi có PostgreSQL 9.6.1.

nhấp chuột phải vào màn hình, thiết bị đầu cuối, nhập:

sudo zypper in postgreql-contrib

Nhập thông tin đăng nhập, tiếp tục bằng cách nhập:

y

Chạy truy vấn (tôi đã chạy của tôi từ pgAdminIII):

CREATE EXTENSION tablefunc;

Bây giờ bạn sẽ có crosstabchức năng.

Tôi không phải khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.