NERD WORLD

SQLite3의 데이터를 PostgreSQL로 이전하기 본문

Python - Django

SQLite3의 데이터를 PostgreSQL로 이전하기

학부생7년차 2016. 6. 20. 20:25

Winning 프로젝트를 처음 개발할때는 Django의 default 세팅인 SQLite3 DBMS를 사용했었다. 개발하는 도중에도 친구들과 게임할 일이 있으면 ngrok 프로그램으로 PC 위의 서버를 포트 개방해서 사용했었기 때문에 유의미한 데이터가 SQLite3 에도 저장되어있었다.


개발을 일단락 짓고, AWS EC2로 서버를 이전하고, PostgreSQL DBMS를 사용하기로 했다. 그러다보니 SQLite3의 데이터를 PostgreSQL로 이전해야할 필요가 생겼다. 그래서 그 방법을 알아봤다.


manage.py가 제공해주는 dumpdata / loaddata 커맨드를 활용해서 손쉽게 데이터를 이전할 수 있었다.

$ python manage.py dumpdata --natural-primary --natural-foreign --exclude=contenttypes --settings SQLite3_세팅_파일 > dump.json

dumpdata 커맨드로 DB의 데이터를 JSON 형식의 파일로 추출한다. --natural 옵션은 참조관계와 우선키 정보를 보전하기 위함으로 보인다. --exclude 옵션은 정확한 이유는 모르겠지만, dumpdata 커맨드가 에러없이 수행되기 위해서 필요하다. 

$ python manage.py loaddata dump.json --settings PostgreSQL_세팅_파일

loaddata 커맨드로 위에서 추출한 JSON 형식의 파일을 PostgreSQL DBMS로 불러들인다.


서버에 접속해서 확인해보면, 데이터가 올바르게 잘 이전되었음을 확인할 수 있다.

Comments