sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo crear una nueva base de datos con la extensión hstore ya instalada?

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!