코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 61Day - 프로젝트 12일차

고랑E 2023. 10. 17. 22:26
728x90

Alembic 패키지 추가

 

추가 이유 : 데이터베이스를 다른 인스턴스나 리전을 변경할 경우 빠르게 마이그레이션 할 수 있게 하기위해

 

pip install alembic

패키지를 설치하고 초기화 해준다

 

alembic init (환경명)

와 같이 alembic.ini 파일과 환경폴더가 생성된다.

 

alembic.ini 에서 우리는 .env에서 db url를 따로 관리해줄거여서 

63번째 줄 에 있는 sqlalchemy.url = driver://user:pass@localhost/dbname 를 주석처리해준다.

 

환경폴더 안에 env.py로 가서

import os
from dotenv import load_dotenv

load_dotenv('.env')

DATABASE_URL = os.environ["POSTGRESQL_DB_URL"]

if not config.get_main_option("sqlalchemy.url"):
    config.set_main_option("sqlalchemy.url", DATABASE_URL)

를 다음과 같이 넣어준다

 

이제 마이그레이션 스크립트 파일을 생성한다.

 

alembic revision -m "(메세지)"

이것 처럼 -m 옵션으로 해당 마이그레이션에 대해 코멘트를 달 수 있다. 없어도 상관없다.

기본 으로 생성된 코드는

"""empty message

Revision ID: aeaf4caf8679
Revises: 
Create Date: 2023-10-17 12:43:14.439822

"""
from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = 'aeaf4caf8679'
down_revision: Union[str, None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
    pass


def downgrade() -> None:
    pass

이것처럼 생겨 먹었고 

 

마이그레이션 실행 방법 중 생성은

 

alembic upgrade head

또는

alembic upgrade (revision)

로 마이그레이션 하는데 head는 최신 버전까지의 마이그레이션을 실행 해주고

 

revision을 입력할 경우 해당 revision에 맞는 마이그레이션 스크립트를 실행 해준다.

 

 

취소는

alembic downgrade

를 통해 할 수 있는데 upgrade 처럼 revidion을 입력 할 수 있고

base 또는 -1 와 같은 이전 버전을 선택해서 실행 할 수 있다.

alembic downgrade base

alembic downgrade -1

alembic downgrade (revision)

 

그리고 회원가입 기능을 만들긴 했는데 그냥 db저장하는 식으로 작성해서 다음에 다른 게시물로 게시하는걸로~

 

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.