UFO ET IT

이미 설치된 hstore 확장으로 새 데이터베이스를 만드는 방법은 무엇입니까?

ufoet 2021. 1. 14. 07:49
반응형

이미 설치된 hstore 확장으로 새 데이터베이스를 만드는 방법은 무엇입니까?


최근 에 Django와 함께 hstore를 사용하는 데 문제가 생겼습니다. 이 방법으로 hstore를 설치했습니다.

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

그리고 내 새 데이터베이스에 hstore가 포함될 것이라고 순진하게 생각했습니다. 그것은 사실이 아닙니다.

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

새로 생성 된 데이터베이스에 hstore를 자동으로 포함하는 방법이 있습니까?


짧은 이야기 :

template1 데이터베이스에 hstore를 설치합니다.

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

단계별 설명 :

PostgreSQL 문서에 명시된대로 :

CREATE EXTENSION은 현재 데이터베이스에 새 확장을로드합니다.

확장 설치는 데이터베이스에 따라 다릅니다. 다음은 현재 데이터베이스 이름을 반환합니다.

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

사용자 이름을 따서 명명 된 데이터베이스가있는 경우. 이제 dbtest:

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

알겠습니다. 이제 hstore가 설치된 새 데이터베이스를 만들려면 데이터베이스에 설치해야 template1합니다. 문서 에 따르면 :

CREATE DATABASE는 실제로 기존 데이터베이스를 복사하여 작동합니다. 기본적으로 template1이라는 표준 시스템 데이터베이스를 복사합니다.

이렇게합시다 :

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

그리고 그것이 작동하는지 확인하십시오.

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

끝난!

참조 URL : https://stackoverflow.com/questions/11584749/how-to-create-a-new-database-with-the-hstore-extension-already-installed

반응형