Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Ododododo

[CentOS 서버 구축] PostgreSQL - Django DB로 설정 본문

자하의 0/CentOS 7 서버 구축

[CentOS 서버 구축] PostgreSQL - Django DB로 설정

오도도도도 2017. 2. 25. 10:41

Nginx uWSGI 설치 및 Django와의 연결 http://jaha01.tistory.com/12



이번에는 Django / Nginx / uWSGI에 DB로 PostgreSQL 사용에 대해 작성하겠다.




Django는 default DB로 SQLite가 설정되어있다. Django의 settings.py에 DB Backend 설정을 보면 확인할 수 있다. 


내가 PostgreSQL을 DB로 선택한 이유는 일단 Django의 가장 큰 장점인 ORM을 지원한다는 이유가 가장 컸다. 또 NoSQL 적인 부분도 약간 필요했었는데 PostgreSQL은 NoSQL Type인 JSON이나 Array Type을 지원해준다. 

https://www.postgresql.org/docs/9.5/static/datatype-json.html 


또 여러 통계들과 자료들로 보았을 때 NoSQL을 사용하는 것과 PostgreSQL의 NoSQL Type을 사용하는 것이 성능적인 부분에서 거의 차이가 없고 오히려 PostgreSQL을 사용하는 것이 더 나을 수 있다는 자료들을 많이 봤다. 직접 사용해보지 않았기에 모르는 부분이지만 사실 2개의 DB로 나눠서 관리하는 것도 불편함이 있을 것 같아 PostgreSQL로 같이 사용하기로 결정했다.



참고 사이트 : http://tecadmin.net/install-postgresql-9-5-on-centos/




1. PostgreSQL Repository 추가 및 설치



PostgreSQL 의 Repository를 추가해주고 설치해주었다. initdb를 통해 PostgreSQL의 data를 만들어주었다. data들은 /var/lib/pgsql/9.5/data 에 있다.



2. DB 생성 및 User 추가


이제 Django project에 사용할 DB를 생성하고 DB User를 만들어보겠다.



3. PostgreSQL 설정


위에서 말했던 PostgreSQL의 data directory에 여러 설정 파일들이 있다. 그 중에 pg_hba.conf와 postgresql.conf 를 수정하겠다. 


postgresql.conf

listen_address = '*'


pg_hba.conf

host        all            all                0.0.0.0/0            md5


설정을 저장한 후 PostgreSQL을 다시 시작해준다.



4. Django settings.py


위에서 PostgreSQL에 대한 설치 및 설정은 끝났다. 이제 Django와 PostgreSQL을 연결해보겠다.


먼저 python 가상환경을 활성화해주고 psycopg2를 설치해준다. 이제 settings.py 파일을 수정해야한다.


위의 코드가 Django가 default로 사용하는 SQLite 설정이다. 이제 이것을 PostgreSQL 설정으로 바꿔보겠다.


위의 설정을 마치고 makemigrations / migrate를 하면 PostgreSQL에 project DB가 생성된 것을 pgAdmin 이나 혹은 postgres로 로그인해서 psql로 확인할 수 있을 것이다.



이제 거의 모든 설정 및 설치가 끝났다. 이후에 필요한 설정이 있으면 그때 그때 써보도록 하겠다. 다음 포스트부터는 Django에 대한 이야기를 시작해보겠다.


Comments