Lang historie kort:
Installer hstore i template1-databasen:
psql -d template1 -c 'create extension hstore;'
Trin-for-trin forklaring:
Som angivet i PostgreSQL-dokumentationen:
CREATE EXTENSION indlæser en ny udvidelse i den aktuelle database.
Installation af en udvidelse er databasespecifik. Følgende giver dig det aktuelle databasenavn:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
I tilfælde af at du har en database opkaldt efter dit brugernavn. Nu med dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Ok, du forstår det. Nu, for at oprette nye databaser med hstore installeret, skal du installere det i template1
database. Ifølge lægen:
CREATE DATABASE fungerer faktisk ved at kopiere en eksisterende database. Som standard kopierer den standardsystemdatabasen med navnet template1.
Lad os gøre dette:
$ psql -d template1 -c 'create extension hstore;'
Og tjek at det virker :
$ 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)
Færdig!