지금까지 프로젝트를 진행하며 데이터베이스 라는 것을 여러번 사용한 기억이 있다. 로그인을 위해 계정을 추가할 때도, 블로그에 게시글을 올릴 때도 데이터베이스를 사용했다. 데이터베이스는 정보들을 저장해 줄 공간이고, migrate를 통해 모델과 데이터베이스를 연동할 수 있었다.
데이터베이스에는 여러가지 종류가 있다. default로 사용하고 있었던 sqlite, 여러 기업체에서 사용하고 있는 oracle, 마이크로소프트의 mysql, 그리고 오늘 사용해 볼 PostgreSQL 등이 있다.
PostgreSQL 다운로드 및 설치
위의 링크에 접속하여 OS와 버전에 맞게 다운로드하자.
해당 비밀번호는 앞으로 사용하게 될 superuser의 비밀번호이다. 잊어버리면 안된다.
모두 설치했다면 pgAdmin이 설치되었을 것이다. 찾아서 실행한다.
다음과 같은 페이지가 뜬다. 이 페이지 자체가 하나의 서버라고 생각하면 된다.
Databases - Create - Database 순서로 선택한다.
이름은 blog로 하고 Owner는 default값을 선택한다.
이제 프로젝트와 DB를 연동해보자.
데이터베이스 연동
위 링크에서 postgreSQL을 사용하기 위해 작성해야하는 딕셔너리를 발견할 수 있다.
settings.py를 수정해보자.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'blog',
'USER': 'postgres',
'PASSWORD': '위에서 작성한 비밀번호',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Python
복사
모두 작성했다면 데이터베이스가 변했다고 알려줘야하니 migrate를 진행한다. 필요한 모듈은 pip를 통해 install 한다.
psycopg2가 없다고 해서 install 해주었다.
서버를 실행해본다.
에러가 뜨지 않는다면 성공이다. 우리가 작업했던 모든 데이터들은 db.sqlite3에 저장되어있고, admin 페이지에 접속하기 위한 그 계정정보 조차도 sqlite3에 저장되어있다. 이제 새로운 DB에 계정정보부터 다시 등록해보자.
python manage.py createsuperuser
Bash
복사
이제부터 만드는 블로그 데이터들은 postgreSQL 데이터베이스에 들어가게 된다.
기존에 만든 내용을 다시 보려고 한다면, settings.py를 원래대로 고쳐주고 migrate하면 된다.