Resumindo:
Instale o hstore no banco de dados template1:
psql -d template1 -c 'create extension hstore;'
Explicação passo a passo:
Conforme declarado pela documentação do PostgreSQL:
CREATE EXTENSION carrega uma nova extensão no banco de dados atual.
A instalação de uma extensão é específica do banco de dados. O seguinte retorna o nome do banco de dados atual:
$ psql -c 'select current_database()'
current_database
------------------
username
(1 row)
Caso você tenha um banco de dados com o nome de seu nome de usuário. Agora com
dbtest
:$ psql -d dbtest -c 'select current_database()'
current_database
------------------
dbtest
(1 row)
Ok, você entendeu. Agora, para criar novos bancos de dados com o hstore instalado, você terá que instalá-lo no
template1
base de dados. De acordo com o doc:
CREATE DATABASE realmente funciona copiando um banco de dados existente. Por padrão, ele copia o banco de dados padrão do sistema denominado template1.
Vamos fazer isso:
$ psql -d template1 -c 'create extension hstore;'
E verifique se 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)
Feito!