I.K.Picture & IT Info.

[PostGIS] 템플릿 형태로 PostGIS 적용하기 본문

Development/Database

[PostGIS] 템플릿 형태로 PostGIS 적용하기

helpful-intruder 2020. 7. 30. 15:12

PostgreSQL을 사용하는 이유 중 하나가 바로 공간정보를 저장할 수 있는 객체형 데이터베이스 기능이 PostGIS를 통해 

제공되기 때문입니다.

 

모든 서비스들이 클라우드 형태로 넘어가게되면서 여러 사용자들이 많이 사용하는 그런 서비스로 제공 될 필요가 있죠

 

PostGIS를 활성화하기 위해서는 create extension postgis; 로 직접 하게되는데 

이렇게 실행할 경우 슈퍼 유저가 아닌 이상 퍼미션 오류가 나게됩니다.

 

이를 해결하기 위해서는 이미 템플릿 형태로 DB를 생성해놓고 DB 생성시 템플릿 기반을 DB를 만드는 것을 권장하고 있는데요.

 

템플릿 형태 DB를 만들어놓고 해야되는 부분에 대해 설명을 해보도록 하겠습니다.

 

일단 템플릿 DB를 만듭니다.

 

SQL Tool

  > createdb template_postgis;

 

이후 템플릿으로 사용하겠다라는 데이터베이스 속성을 업데이트 해줍니다.

  > UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';

 

자 그 다음 tempate_postgis 에 postgis를 추가해줘야겟죠?

DB에 접속 후에 SQL Tool에 확장을 해준다. 

 

  > create extension postgis;

 

그런 후 권한 설정을 public 로 설정을 해줘야합니다.

 

  > GRANT ALL ON geometry_columns TO PUBLIC;
  > GRANT ALL ON geography_columns TO PUBLIC;
  > GRANT ALL ON spatial_ref_sys TO PUBLIC;
  > REVOKE CONNECT ON DATABASE template_postgis FROM public;

 

이후 해야될 일이... 반드시 postgresql 서비스를 재시작을 해줘야합니다. 

저 같은 경우 리눅스 형태이기 때문에 

  #service postgresql restart 

 

와 같이 했습니다.

 

이후 데이터베이스 생성을 할 때 

 

  > CREATE DATABASE <데이터베이스 이름> TEMPLATE template_postgis;

 

이렇게 작성하면 template_postgis에 확장 설치된 postgis가 포함된 DB가 만들어집니다. 

 

0 Comments
댓글쓰기 폼