Lång historia kort:
Installera hstore i mall1-databasen:
psql -d template1 -c 'create extension hstore;'
Steg-för-steg-förklaring:
Som anges i PostgreSQL-dokumentationen:
CREATE EXTENSION laddar ett nytt tillägg till den aktuella databasen.
Att installera ett tillägg är databasspecifikt. Följande ger dig det aktuella databasnamnet:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
Om du har en databas döpt efter ditt användarnamn. Nu med dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Ok, du fattar. Nu, för att skapa nya databaser med hstore installerat, måste du installera det i template1
databas. Enligt doktorn:
CREATE DATABASE fungerar faktiskt genom att kopiera en befintlig databas. Som standard kopierar den standardsystemets databas med namnet mall1.
Låt oss göra så här:
$ psql -d template1 -c 'create extension hstore;'
Och kontrollera att det fungerar :
$ 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)
Klart!