En pocas palabras:
Instale hstore en la base de datos template1:
psql -d template1 -c 'create extension hstore;'
Explicación paso a paso:
Como se indica en la documentación de PostgreSQL:
CREATE EXTENSION carga una nueva extensión en la base de datos actual.
La instalación de una extensión es específica de la base de datos. Lo siguiente le devuelve el nombre de la base de datos actual:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
En caso de que tenga una base de datos con el nombre de su nombre de usuario. Ahora con dbtest
:
$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Bien, lo tienes. Ahora, para crear nuevas bases de datos con hstore instalado, deberá instalarlo en el template1
base de datos. Según el documento:
CREATE DATABASE en realidad funciona copiando una base de datos existente. De forma predeterminada, copia la base de datos del sistema estándar denominada template1.
Hagamos esto:
$ psql -d template1 -c 'create extension hstore;'
Y comprueba que funciona:
$ 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)
¡Listo!