кажется, что порт для 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
EDIT: Установка на другом компьютере также не работает. Хэш не был установлен с базой (я, возможно, сделал это доступным, попробовав другие решения). Так что это перед командой нагрузки выше:
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 использовать новый «создать расширение» команду SQL в базе данных (ы) вы будете использовать hstore. Если вы установите его в базу данных 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)
Оформить заказ @ rpkelly ответ ниже, это самый простой и самый полный. –