Per farla breve:
Installa hstore nel database template1:
psql -d template1 -c 'create extension hstore;'
Spiegazione dettagliata:
Come affermato dalla documentazione di PostgreSQL:
CREATE EXTENSION carica una nuova estensione nel database corrente.
L'installazione di un'estensione è specifica del database. Quanto segue ti restituisce il nome del database corrente:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
Nel caso in cui tu abbia un database che prende il nome dal tuo nome utente. Ora con dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Ok, hai capito. Ora, per creare nuovi database con hstore installato, dovrai installarlo nel template1
Banca dati. Secondo il documento:
CREATE DATABASE funziona effettivamente copiando un database esistente. Per impostazione predefinita, copia il database di sistema standard denominato template1.
Facciamo così:
$ psql -d template1 -c 'create extension hstore;'
E controlla che funzioni :
$ 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)
Fatto!