FastAPI Alembic new 테이블 및 외래키 생성(Upgrade / Downgrade) - 71

2023. 1. 22. 20:48·Develop/FastAPI
728x90
SMALL
alembic을 통한 address 테이블 생성 및 외래키 설정을 위한 칼럼 추가

 

1. 테이블 추가를 위한 새로운 버전 생성

 

2. 버전의 upgrade / downgrade 함수 수정

def upgrade():
    op.create_table('address',
                    sa.Column('id', sa.Integer(), nullable=False, primary_key=True),
                    sa.Column('address1', sa.String(), nullable=False),
                    sa.Column('address2', sa.String(), nullable=False),
                    sa.Column('city', sa.String(), nullable=False),
                    sa.Column('state', sa.String(), nullable=False),
                    sa.Column('country', sa.String(), nullable=False),
                    sa.Column('postalcode', sa.String(), nullable=False)
                    )


def downgrade():
    op.drop_table('address')

 

3. alembic을 통한 테이블 생성

PostgreSQL 확인

 

4. 컬럼 추가를 위한 새로운 버전 생성

 

5. 버전의 upgrade / downgrade 함수 수정

def upgrade():
    op.add_column('users', sa.Column('address_id', sa.Integer(), nullable=True))
    op.create_foreign_key('address_users_fk', source_table="users", referent_table="address",
                          local_cols=['address_id'], remote_cols=['id'], ondelete="CASCADE")                          

def downgrade():
    op.drop_constraint("address_users_fk", table_name="users")
    op.drop_column('users', 'address_id')
옵션 설명
souce_table foreign_key 소스 테이블
referent_table foreign_key 참조 테이블
local_cols users 테이블 address_id
remote_cols address 테이블 id
ondelete CASCADE - reference값은 삭제되면서 참조무결성을 유지

 

6. alembic을 통한 외래키 생성

 

7. 외래키 확인

Properties -> Constraints -> Foreign Key

728x90
SMALL
저작자표시 비영리 변경금지 (새창열림)

'Develop > FastAPI' 카테고리의 다른 글

FastAPI Alembic 추가 실습하기 - 73  (0) 2023.01.24
FastAPI 테이블 관계 형성하기- 72  (0) 2023.01.24
FastAPI What is Alembic(upgrade/ downgrade 실습) - 70  (2) 2023.01.22
FastAPI Routing 실습 - 69  (0) 2023.01.18
FastAPI Dependencies 라우팅 - 68  (0) 2023.01.17
'Develop/FastAPI' 카테고리의 다른 글
  • FastAPI Alembic 추가 실습하기 - 73
  • FastAPI 테이블 관계 형성하기- 72
  • FastAPI What is Alembic(upgrade/ downgrade 실습) - 70
  • FastAPI Routing 실습 - 69
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
FastAPI Alembic new 테이블 및 외래키 생성(Upgrade / Downgrade) - 71
상단으로

티스토리툴바