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+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 63Day - 프로젝트 14일차 (2) | 2023.10.19 |
---|---|
[AI 웹개발 취업캠프] 62Day - 프로젝트 13일차 (2) | 2023.10.18 |
[AI 웹개발 취업캠프] 60Day - 프로젝트 11일차 (0) | 2023.10.16 |
[AI 웹개발 취업캠프] 34Day - 전염병 예측/숫자 생성 인공지능 만들기 (0) | 2023.09.01 |
[AI 웹개발 취업캠프] 33Day - 숫자 구분 인공지능(예비군/4일차) (0) | 2023.08.31 |