PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come creare un nuovo database con l'estensione hstore già installata?

Per farla breve:

Installa hstore nel database template1:

psql -d template1 -c 'create extension hstore;'

Spiegazione dettagliata:

Come affermato dalla documentazione di PostgreSQL:

CREATE EXTENSION carica una nuova estensione nel database corrente.

L'installazione di un'estensione è specifica del database. Quanto segue ti restituisce il nome del database corrente:

$ psql -c 'select current_database()'
 current_database 
------------------
 username
(1 row)

Nel caso in cui tu abbia un database che prende il nome dal tuo nome utente. Ora con dbtest :

$ psql -d dbtest -c 'select current_database()'
 current_database 
------------------
 dbtest
(1 row)

Ok, hai capito. Ora, per creare nuovi database con hstore installato, dovrai installarlo nel template1 Banca dati. Secondo il documento:

CREATE DATABASE funziona effettivamente copiando un database esistente. Per impostazione predefinita, copia il database di sistema standard denominato template1.

Facciamo così:

$ psql -d template1 -c 'create extension hstore;'

E controlla che funzioni :

$ 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)

Fatto!