Truyện dài:
Cài đặt hstore trong cơ sở dữ liệu template1:
psql -d template1 -c 'create extension hstore;'
Giải thích từng bước:
Như đã nêu trong tài liệu PostgreSQL:
CREATE EXTENSION tải một tiện ích mở rộng mới vào cơ sở dữ liệu hiện tại.
Cài đặt một tiện ích mở rộng dành riêng cho cơ sở dữ liệu. Phần sau trả về cho bạn tên cơ sở dữ liệu hiện tại:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
Trong trường hợp bạn có một cơ sở dữ liệu được đặt tên theo tên người dùng của bạn. Bây giờ với dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Ok, bạn hiểu rồi. Bây giờ, để tạo cơ sở dữ liệu mới có cài đặt hstore, bạn sẽ phải cài đặt nó trong template1
cơ sở dữ liệu. Theo doc:
TẠO CƠ SỞ DỮ LIỆU thực sự hoạt động bằng cách sao chép cơ sở dữ liệu hiện có. Theo mặc định, nó sao chép cơ sở dữ liệu hệ thống tiêu chuẩn có tên là template1.
Hãy làm điều này:
$ psql -d template1 -c 'create extension hstore;'
Và kiểm tra xem nó có hoạt động không:
$ createdb dbtest
$ psql -d dbtest -c '\dx'
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+--------------------------------------------------
hstore | 1.0 | public | data type for storing sets of (key, value) pairs
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 rows)
Đã xong!