Recientemente I went into trouble tratando de usar hstore con Django. Instalé hstore de esta manera:¿Cómo crear una nueva base de datos con la extensión hstore ya instalada?
$ sudo -u postgres psql
postgres=# CREATE EXTENSION hstore;
WARNING: => is deprecated as an operator name
DETAIL: This name may be disallowed altogether in future versions of PostgreSQL.
CREATE EXTENSION
postgres=# \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)
Y ingenuamente pensé que mis nuevas bases de datos incluirían hstore. Ese no es el caso:
$ createdb dbtest
$ psql -d dbtest -c '\dx'
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 row)
¿Hay alguna manera de tener automáticamente hstore en una base de datos recién creada?
+1 por ser correcto y ponerlo todo en un formato útil. Uno podría considerar usar una base de datos diferente a 'template1'. Cualquier base de datos puede servir como plantilla: 'CREATE DATABASE foo TEMPLATE mytemplate'. O bien, una vez que tenga elementos adicionales en 'template1', puede usar la plantilla (vacía por defecto)' template0'. –