Django와 Postgresql 연동하기

Error Coder·2023년 4월 7일
0

Postgresql DB 생성하기

$ psql postgres

위 입력어를 통해 postgresql을 접속해준다

postgres=# create database [databasename];

입력하면 데이터베이스가 생성되었다고 터미널에 표시된다.
그후 데이터 베이스에 접속해준다.
postgres=# \connect [databasename];

새롭게 만든, 데이터베이스로 들어왔으면, 새로운 유저를 만들고 몇가지 설정과 함께 권한을 부여한다.

순서대로 아래의 명령어를 입력한다.
create user root with password 'password';

root는 유저 이름이고, password는 비밀번호이다. 이때 비밀번호는 따옴표로 감싸주어야 한다!!

alter role root set client_encoding to 'utf-8';

alter role root set timezone to 'Asia/Seoul';

grant all privileges on database [databasename] to root;

밑에는 내가 이번에 만드는 프로젝트에서 Postgresql과 연결해본 예시다.

postgres=# create database project;
CREATE DATABASE
postgres=# \connect project;
You are now connected to database "project" as user "User".
project=# create user root with password 'password';
CREATE ROLE
project=# alter role root set client_encoding to 'utf-8';
ALTER ROLE
project=# alter role root set timezone to 'Asia/Seoul';
ALTER ROLE
project=# grant all privileges on database project to root;
GRANT

데이터베이스 설정은 여기서 마무리다. 그다음은 장고 세팅으로 넘어가준다.

나중에 다른 데이터베이스 생성후 이미 생성된 유저에게 모든 권한을 부여해줄 때 코드이다.

Django 세팅하기

먼저 psycopg2 라는 것을 설치해야 되는데, 터미널창에서 pip로 설치를 진행한다.
pip install psycopg2
이렇게 설치가 마무리 되었으면, 이제 postgreSQL을 적용할 django 프로젝트로 들어가서 settings.py 파일을 열어서 database항목을 찾아본다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

원래는 위와 같이 작성되어있는 것을 Postgresql에 맞게 수정해준다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'project',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

그후에 터미널에 들어가서 아래와 같은 명령어들을 입력한 후에 서버가 잘 돌아가는지 확인한다.

python manage.py makemigrations
python manage.py migrate

python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
March 14, 2022 - 10:02:57
Django version 3.0.8, using settings 'project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

이렇게 나오면 잘된것이라고 한다.
최종적으로 postgresql에 직접 들어가서 작성된 모델들이 테이블로 잘 생성되었는지 확인해주면 된다.

출처 : https://velog.io/@chaeri93/Django-Django%EC%99%80-Postgresql-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0

profile
개발자 지망생

0개의 댓글