My Image

Django 포스팅

[Django] PostgreSQL과 연동하고 Lightsail에 업로드하기

Doyeon0430 | 2023년 05월 16일

Django 이미지

이번시간에는 Django에서 기본으로 생성되는 데이터베이스인 sqlite3를 PostgreSQL로 변경해보겠습니다.

블로그에 sqlite3를 사용하면 용량이 부족할 수 있습니다.

이럴 경우 PostgreSQL로 변경해서 간편하게 데이터베이스를 관리하면 됩니다.

추가적으로 윈도우 뿐만 아니라 Ubuntu 20.04에서도 PostgresSQL 설치하는 방법을 알아보겠습니다.

 

  1. Django 데이터베이스 설치 - PostgreSQL

  2. Django 데이터베이스 설치 - CMD

  3. Django 데이터베이스 설치 - 우분투

 

 

1. Django 데이터베이스 설치 - PostgreSQL

PostgreSQL 이미지 1

PostresSQL을 다운 받으면 설치되는 파일들 입니다.

다운로드는 홈페이지 가면 쉽게 받을 수 있어요.

저희는 저 중에서 SQL Shell (psql)을 사용 할 겁니다.

 

PostgreSQL 이미지 2

검은 화면에 Server부터 입력하라는 문구가 나오는데 postgres 사용자의 암호: 가 나올 때까지 Enter를 치세요.

사용자의 암호는 다운 받으셨을 때 설정하셨던 비밀번호입니다.

비밀번호를 입력하면 psql (15.3)으로 Shell에 접속이 됩니다.

이제 데이터베이스와 유저 아이디를 생성하고 권한을 부여해야하는데 아래 코드를 따라하시면 돼요.

 

1. 데이터베이스 생성

CREATE DATABASE 데이터베이스_이름;

 

2. 유저 생성

CREATE USER 유저아이디 WITH PASSWORD '유저비밀번호';

 

3. 유저 기본 설정

ALTER ROLE 유저아이디 SET client_encoding TO 'utf-8';
ALTER ROLE 유저아이디 SET timezone TO 'Asia/Seoul';
ALTER ROLE 유저아이디 SET default_transaction_isolation TO 'read committed';

 

4. 권한 부여

GRANT ALL PRIVILEGES ON DATABASE 데이터베이스_이름 to 유저아이디;

모두 다 오류없이 입력하셨으면 더이상 할게 없으니 \q을 입력하고 나와주세요.

이러면 Django에서 사용 할 데이터베이스가 생성됐습니다.

 

 

2. Django 데이터베이스 설치 - CMD

다음으로는 프로젝트 내부에서 settings.py 값을 설정 할 겁니다.

코드 몇 줄로 간단하게 등록할 수 있습니다.

 

1. psycopg2 설치

pip install psycopg2

 

2. settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': "데이터베이스_이름",
        'USER': "유저아이디",
        'PASSWORD': "유저비밀번호",
        'HOST': "localhost",
        'PORT': "5432",
    }
}

NAME과 USER, PASSWORD는 아까 입력했던 정보들을 그대로 입력해주세요.

 

3. 데이터베이스 연동

python manage.py migrate

만약 오류가 생길경우 sqlite3 파일을 삭제하시면 됩니다.

이상으로 장고에서 sqlite3를 PostgreSQL로 변경하는 방법에 대해 알아봤습니다.

 

 

3. Django 데이터베이스 설치 - 우분투

마지막으로 우분투에서 PostgreSQL 설치법을 알아보겠습니다.

저는 Amazon Lightsail에 5달러를 이용하고 있습니다.

EC2보다 성능면에서 떨어지지만 가격이 저렴해서 사용하고 있습니다.

 

1. PostgreSQL 설치

$ sudo apt update
$ Sudo apt install postgresql

 

2. PostgreSQL 확인

$ psql --version

패키지를 통해 간단하게 설치가 완료되었습니다.

 

3. PostgreSQL 접속

$ sudo -u postgres psql
$ \c 데이터베이스_이름

우분투에서 psql 쉘에 접속했습니다.

이제 Django에서 입력했던 settings.py을 참고하여 데이터베이스 생성부터 진행하면 됩니다.

수정이 다 끝났으면 exit를 통해 나올 수 있습니다.

 

4. PostgreSQL 적용

$ sudo service postgresql start
$ python manage.py migrate

만약 python manage.py migrate을 입력했는데 django_migrations라는 오류가 뜰 수 있습니다.

이유는 권한자가 아니라 접근하지 못한다는 뜻입니다.

이럴 경우 psql Shell에서 아래 코드를 입력하면 됩니다.

 

5. PostgreSQL 권한 변경

ALTER DATABASE 유저아이디 OWNER TO 데이터베이스_이름;

 

글을 마치며 PostgreSQL 설치법을 적어봤습니다.

댓글 (0)

    댓글이 없습니다.

간편 댓글 작성

My Image My Image My Image My Image