PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como criar um novo banco de dados com a extensão hstore já instalada?


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!