์ ํํฌ FastApi ์ ๊ณต์๋ฌธ์ ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
- fast api์ ์ด๊ธฐ ์ค์ ๊ณผ app, router์ ๋ํ ์ ๋ฐ์ ์ธ ์ดํด
- migration ๊ด๋ฆฌ alembic์ ๋ํ ์ ๋ฐ์ ์ธ ์ดํด
## ๋ง์ด๊ทธ๋ ์ด์
๋ฐฉ๋ฒ
1. ์คํค๋ง ๋ณ๊ฒฝ ์ดํ `alembic revision --autogenerate`๋ฅผ ์์ฑ.
2. `alembic upgrade head`์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฉํ๋ค.
3. `alembic history` ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
์ ํ์ธํ๋ค.
## ๊ธฐํ
- `alembic current` ๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ๋ง์ด๊ทธ๋ ์ด์
์ํ๋ฅผ ํ์ธํ ์ ์๋ค.
- `alembic downgrade -1`๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ์ํ๋ก ๋๋๋ฆด ์ ์๋ค.
- database ์ฐ๊ฒฐ ๋ฐ
SQLALCHEMY
์ ๋ชจ๋ธ ๋ฐ base์ ๊ด๋ จํ์ฌ ๊ณต๋ถ - pydantic์ ํตํ ์คํค๋ง(dto) ์ดํด.
- ๊ธฐํ ํ์ด์ฌ์ Union๊ณผ fastapi์ Depends ์กฐ๊ธ ์ดํด
- DTO(schema)๋ฅผ ํตํ response์ ๋ํ ์ดํด. (response model ํ์ฉ)
- response model์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ return ํ ๋ ๊ฐ์ฒด๊ฐ ํ์ํ๋ค.