본문 바로가기

mac - postgresql & postgis install and setting 일단 분류가 좀 이상하지만 나중에 찾을 때 제가 여기를 확인할 것 같아서.. 1. PostgreSQL & PostGIS 설치는 brew로 간단하게 가능 - brew 설치는 아래 참고 linux에서 brew 설치 (http://brew.sh/linuxbrew/) apt-get install -y build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev # ---> root 이외의 사용자에서 실행해야 합니다.ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)" 스크.. 더보기
psycopg2 error : image not found in mac mac에 개발환경을 다시 구축했습니다.구축하면서 발생했던 문제들 중 몇 가지만 정리해두려고 포스팅합니다 :) psycopg2 error : image not found 라고 나오는 에러에요.아래와 같이 해결했습니다 :) Case 1 : PostgreSQL Installation Method - Brew sudo ln -s /usr/local/Cellar/openssl/1.0.2h_1/lib/libssl.1.0.0.dylib /usr/local/lib sudo ln -s /usr/local/Cellar/openssl/1.0.2h_1/lib/libcrypto.1.0.0.dylib /usr/local/lib Case 2 : PostgreSQL Installation Method - dmgsudo ln -s /.. 더보기
PostgreSQL serial type PostgreSQL에서 제공되는 Serial Data Type에 대해 정리 !! 1. 특정 컬럼에 serial로 데이터타입을 지정하면 새로운 행이 추가될 때 자동으로 하나 씩 증가합니다. 그래서 id와 같은 컬럼에 사용하면 편리합니다. 직접 입력하지 않아도 자동으로 증가하니깐 데이터 추가할 때 신경쓰지 않아도 되죠 :) 아래 그림은 temp라는 테이블을 생성할 때 id 컬럼에 serial 데이터타입을 지정한 sql 예시입니다. CREATE TABLE serial_test ( id serial, name character varying(128) NOT NULL, CONSTRAINT serial_test_pkey PRIMARY KEY (id), CONSTRAINT serial_test_name_key UNI.. 더보기
PostgreSQL, Pgadmin3 - Add Constraints 이번 포스팅에서는 PostgreSQL를 쉽게 활용할 수 있도록 지원하는 PgAdmin3에서 제약조건을 추가하는 방법에 대해서 간단하게 정리해둡니다 :) 1. 아래와 같은 SQL로 생성된 테이블이 있다고 가정하겠습니다. 아래 오타가 있네요 4는 왜 들어간건지..;; 내용상 큰 문제는 아니니깐 넘어갈께요. gid와 ttname 이라는 컬럼이 존재하고 gid는 pk입니다. ttname은 not null 빼고는 별다른 제약이 없구요. 이번 포스팅에서는 ttname에 unique 조건을 추가하는 것이 목표입니다. 2. 생성한 테이블을 마우스 오른쪽 클릭하면 아래와 같은 그림이 나옵니다. 여기서 Properties... 를 선택해줍니다. 3. Properties를 누르면 아래 와 같이 여러 탭이 있는 창이 하나 뜹.. 더보기
GDAL : ogr2ogr : GeoJSON to PostgreSQL/PostGIS GeoJSON 파일을 PostgreSQL / PostGIS에 하나의 테이블로 입력할 때 사용할 수 있는 툴은 ogr2ogr 이라는 툴입니다. ogr2ogr의 기능은 꽤 다양한데요. 자세한 내용은 아래 웹 페이지를 참고하세요. ogr2ogr description web page : http://www.gdal.org/ogr2ogr.html 기능 중 하나가 GeoJSON과 같은 포맷을 공간정보 데이터베이스에 입력하는 것입니다. 예로 aaa.geojson 이라는 파일이 존재할 때 PostgreSQL / PostGIS에 입력하는 커맨드는 다음과 같습니다. ogr2ogr -s_srs EPSG:3857 -t_srs EPSG:3857 -f PostgreSQL PG:"dbname=mydb user=postgres" a.. 더보기
GDAL build with PostgreSQL GDAL을 빌드해서 설치할 때.. 향후 PostgreSQL과 연계되어 작동시키고 싶을 때는 아래와 같이 몇 가지 과정이 필요합니다. 1. PostgreSQL의 dev 패키지를 설치해줘야 합니다. PostgreSQL의 9.4 버전을 기준으로 아래와 같은 방식으로 패키지를 설치합니다. apt-get install -y postgresql-server-dev-9.4 2. gdal configure를 수행할 때 --with-pg 옵션을 통해 pg_config 파일의 위치를 잡아줍니다. ./configure --with-python --with-pg=/usr/bin/pg_config 위와 같이 PostgreSQL support yes가 나오면 성공! ./configure --with-python --with-pg.. 더보기
PostgreSQL psql command 가끔 PostgreSQL을 사용해서 작업을 해야 하는 경우가 있는데, psql를 실행해서 몇 가지 명령어만 치고 끝낸다. 가끔 사용하보니 아주 기초적인 것도 기억이 나지 않아서 매번 인터넷에 검색해서 사용하는 편인데.. 몇 가지만 간단하게 정리해두고 급할 때 찾아보려고 한다. 1. 데이터베이스 목록 출력 (List of databases) user=#\l (윈도우에서 작성하니깐 별로 좋지 못한데, 역슬래시에 소문자 엘(l)이다) 또는 user=#\list 도 가능하다. 2. 특정 데이터베이스 사용하기 예로 aaa 라는 데이터베이스가 존재할 때 user=#\c aaa (역슬래시에 소문자 c이다) 그럼 아래와 같이 변경 된다아. You are now connected to database "aaa" as u.. 더보기
Python, psycopg2 : INSERT INTO .... SQL PostgreSQL의 adapter 중에 python을 지원해주는 psycopg2 라는 녀석이 존재합니다. 예전 글들을 찾아보니 psycopg2에 관련 된 몇 개의 포스팅이 있긴한데요. insert into sql에 대해서는 제대로 정리해둔 것이 없어서.. 일단 다시 psycopg2에 대해서 기본적인 정보에 대해서 정리해보면 다음과 같습니다. 1. psycopg2 document : http://pythonhosted.org//psycopg2/ 2. License : LGPL 3. github : https://github.com/psycopg/psycopg2 4. Project Homepage : http://initd.org/psycopg/ 이번 포스팅에서는 psycopg2로 insert into s.. 더보기
PostGIS : Select Geospatial Data from Table 관련 포스팅 PostGIS : PostGIS Setting Script : http://ngee.tistory.com/629 PostGIS : Create Geospatial Table : http://ngee.tistory.com/631 PostGIS : Insert Geospatial Data into Table : http://ngee.tistory.com/632PostGIS : Select Geospatial Data from Table : http://ngee.tistory.com/633PostGIS : Delete Geometry Column in Geospatial Table : http://ngee.tistory.com/635 앞선 포스팅에서 PostGIS를 설정하고, 함수 AddGeome.. 더보기
PostGIS : Insert Geospatial Data into Table 관련 포스팅 PostGIS : PostGIS Setting Script : http://ngee.tistory.com/629 PostGIS : Create Geospatial Table : http://ngee.tistory.com/631 PostGIS : Insert Geospatial Data into Table : http://ngee.tistory.com/632 PostGIS : Select Geospatial Data from Table : http://ngee.tistory.com/633 PostGIS : Delete Geometry Column in Geospatial Table : http://ngee.tistory.com/635 앞선 포스팅에서 PostGIS를 설정하고, 함수 AddGeo.. 더보기
PostGIS : Create Geospatial Table 관련 포스팅 PostGIS : PostGIS Setting Script : http://ngee.tistory.com/629 PostGIS : Create Geospatial Table : http://ngee.tistory.com/631 PostGIS : Insert Geospatial Data into Table : http://ngee.tistory.com/632 PostGIS : Select Geospatial Data from Table : http://ngee.tistory.com/633 PostGIS : Delete Geometry Column in Geospatial Table : http://ngee.tistory.com/635 PostGIS를 활용하여 공간정보를 저장할 수 있는 데이터베.. 더보기
PostgreSQL : Server doesn't listen PostgreSQL을 외부 서버에 설치하고, PgAdmin으로 접근하려고 하면 아래 그림과 같은 Server doesn't listen 에러를 볼 수 있습니다. 이와 같은 에러가 발생하는 것은 PostgreSQL의 기본 설정이 외부에서 접근하는 것을 허용하지 않기 때문입니다. 그럼 설정을 바꿔야겠네요. ^^ 파일 2개를 손보면 됩니다. 하나의 파일은 /etc/postgresql/9.3/main/postgresql.conf 입니다. 위 파일을 vi로 열어서 확인해보세요. .... #listen_addresses = 'localhost' ..... #으로 주석처리 되어 있는 것을 해제하고 localhost를 *로 변경합니다. 아래와 같이 말이죠. listen_addresses = '*' 다른 하나의 파일은 .. 더보기
PostGIS : PostGIS Setting Script #!/bin/bash createdb tdb createlang plpgsql tdb psql -d tdb -f postgis.sql psql -d tdb -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql psql -d tdb -f /usr/share/postgresql/9.3/contrib/postgis-2.1/spatial_ref_sys.sql psql -d tdb -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis_comments.sql tdb ===> Database Name위 스크립트는 그대로 test.sh 파일로 만들어서 사용하면 됩니다. 제가 사용하고 있는 postgresql 버전이 .. 더보기
PostgreSQL Command Line: Database Restore PostgreSQL에서 데이터베이스를 복구하는 커맨드라인 명령어로 pg_restore가 존재합니다. pg_restore에는 몇 가지 옵션들을 지정할 수 있는데요. pg_restore --help를 통해 확인할 수 있습니다. 너무 많아서 약간 줄였습니다. pg_restore restores a PostgreSQL database from an archive created by pg_dump. Usage: pg_restore [OPTION]... [FILE] General options: -d, --dbname=NAME connect to database name -f, --file=FILENAME output file name -F, --format=c|d|t backup file format (shoul.. 더보기
PostgreSQL SQL Statement : array insert 간단하게 PostgreSQL SQL Statement 중 array insert 하는 부분에 대해서 정리해둡니다. 먼저 insert 하기 위한 테이블이 아래와 같은 SQL로 생성되었다고 가정하겠습니다. ================================================================================================== CREATE TABLE test ( pid integer NOT NULL, t_array double precision[], CONSTRAINT test_pkey PRIMARY KEY (pid) ) WITH ( OIDS=FALSE ); ALTER TABLE test OWNER TO postgres; ==================.. 더보기
PgAdmin3, Database Restore 1. Open PgAdmin3 and New Database 2. Database Mouse Right Click and Restore... CLI로 하는 방식도 있지만, 편하게 GUI로 Restore 하는 과정을 정리했습니다. Restore까지 완료하시면 Backup한 테이블들이 보이고, 그 안에 데이터도 존재할꺼에요. 더보기