Накратко:
Инсталирайте hstore в базата данни template1:
psql -d template1 -c 'create extension hstore;'
Обяснение стъпка по стъпка:
Както е посочено в документацията на PostgreSQL:
CREATE EXTENSION зарежда ново разширение в текущата база данни.
Инсталирането на разширение е специфично за базата данни. Следното ви връща текущото име на базата данни:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
В случай, че имате база данни, наречена на вашето потребителско име. Сега с dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Добре, разбрахте. Сега, за да създадете нови бази данни с инсталиран hstore, ще трябва да го инсталирате в template1
база данни. Според документа:
CREATE DATABASE всъщност работи чрез копиране на съществуваща база данни. По подразбиране той копира стандартната системна база данни с име template1.
Нека направим това:
$ psql -d template1 -c 'create extension hstore;'
И проверете дали работи :
$ 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)
Готово!