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을 통한 테이블 생성
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. 외래키 확인
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 |