看來,口對PostgreSQL 9.1現在包括hstore,但它仍然需要啓用。正常安裝並啓動數據庫。
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
編輯:在另一臺計算機安裝也沒有工作。 hstore沒有安裝基礎(我可能試過其他解決方案)。所以做這個上面負載命令之前:
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
要啓用hstore擴展,數據庫中的()你將使用hstore使用新的「創建擴展」 SQL命令。如果將其安裝到template1數據庫中,則後來創建的所有數據庫都將具有hstore擴展名。
psql template1 postgres
template1=# create extension hstore;
如果你只需要在一個特定的數據庫擴展:
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)
Checkout @ rpkelly的答案在下面,它是最簡單和最完整的。 – 2012-04-23 03:09:49