Dường như cổng cho PostgreSQL 9.1 hiện nay bao gồm hstore, nhưng nó vẫn cần phải được kích hoạt. Cài đặt và khởi động cơ sở dữ liệu bình thường.
sudo port install postgresql91 postgresql91-server
sudo mkdir -p /opt/local/var/db/postgresql91/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql91/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql91/bin/initdb \
-D /opt/local/var/db/postgresql91/defaultdb'
sudo port load postgresql91-server
CHỈNH SỬA: Cài đặt trong máy tính khác không hoạt động. Các hstore đã không được cài đặt với cơ sở (tôi có thể đã làm cho nó có sẵn cố gắng các giải pháp khác). Vì vậy, hãy làm điều này TRƯỚC KHI lệnh tải ở trên:
sudo port unload postgresql91-server # if you did load above
sudo port build postgresql91
port work postgresql91 # Gives you base dir for following command
cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_postgresql91/postgresql91/work/postgresql-9.1.*/contrib/hstore
sudo make all
sudo make install clean
sudo port load postgresql91-server
Để bật tiện ích mở rộng hstore, hãy sử dụng lệnh "tạo tiện ích mở rộng" SQL mới trong (các) cơ sở dữ liệu bạn sẽ sử dụng hstore. Nếu bạn cài đặt nó vào cơ sở dữ liệu template1, tất cả các cơ sở dữ liệu được tạo sau đó sẽ có phần mở rộng hstore.
psql template1 postgres
template1=# create extension hstore;
Nếu bạn chỉ cần phần mở rộng trong một cơ sở dữ liệu cụ thể:
psql dbname dbuser
dbname=# create extension hstore;
create table a (id serial, data hstore);
NOTICE: CREATE TABLE will create implicit sequence "a_id_seq" for serial column "a.id"
CREATE TABLE
dbname=# insert into a(data) values('a=>1, b=>2');
INSERT 0 1
dbname=# SELECT * from a;
id | data
----+--------------------
1 | "a"=>"1", "b"=>"2"
(1 row)
Trả lời của @ rpkelly dưới đây, đó là câu trả lời đơn giản và đầy đủ nhất. –