PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie erstelle ich eine neue Datenbank mit bereits installierter hstore-Erweiterung?

Lange Rede kurzer Sinn:

Installieren Sie hstore in der Datenbank template1:

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

Schritt-für-Schritt-Erklärung:

Wie in der PostgreSQL-Dokumentation angegeben:

CREATE EXTENSION lädt eine neue Erweiterung in die aktuelle Datenbank.

Die Installation einer Erweiterung ist datenbankspezifisch. Folgendes gibt Ihnen den aktuellen Datenbanknamen zurück:

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

Falls Sie eine Datenbank haben, die nach Ihrem Benutzernamen benannt ist. Jetzt mit dbtest :

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

Okay, du hast es. Um nun neue Datenbanken mit installiertem hstore zu erstellen, müssen Sie es in template1 installieren Datenbank. Laut Dokument:

CREATE DATABASE funktioniert tatsächlich durch Kopieren einer vorhandenen Datenbank. Standardmäßig kopiert es die Standard-Systemdatenbank namens template1.

Gehen wir so vor:

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

Und überprüfen Sie, ob es funktioniert :

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

Fertig!