728x90
SMALL
1. 이 글의 목표
python에서 ORM을 활용하기 위해서는 통상 models.py라 불리는 데이터 형태를 저장해놓아야 한다.
저번 포스팅에서는 직접 models.py를 작성해서 기존의 database를 불러오는 것을 해보았다.
이번에는 직접 작성하는 것이 아닌 sqlacodegen를 활용해
기존의 database형태를 models.py에 저장하는 법에 대해서 알아보겠다.
2. 기존 database를 models.py에 저장하는 방법
1. sqlacodegen 모듈을 설치한다.
pip install sqlacodegen
2. 연결하고 싶은 db를 작성하고 models.py에 저장시킨다.(mysql 기준)
sqlacodegen mysql+pymysql://<user>:<password>@<host>:<port>/<db> > "./models.py"
3. models.py에 결과가 잘 나왔는지 확인한다.
- class 형태로 나와있는 경우 : primary_key가 있는 경우
- 변수명 형태로 나와있는 경우 : primary_key가 없는 경우
3. 마치면서
sqlacodegen을 이용하면
기존에 있었던 database도 자동으로 models.py를 만들 수 있게 되었다.
그런데 여기서 pk가 없으면 class 형태로 나오지 않는 이슈가 생기게 되었다.
pk를 autoincrement로 추가하는 것은 어렵지 않지만
db에 꼭 pk가 있어야 할까, 있어야 한다면 그 이유는 무엇이고 없어도 된다면 장단점은 무엇일까 궁금해졌다.
728x90
LIST
'Python > API' 카테고리의 다른 글
gunicorn은 무엇인가? (feat. WSGI) (1) | 2024.04.03 |
---|---|
동일 API 호출에 대한 처리 방법(feat. asyncio) (0) | 2023.09.05 |
[FastAPI] FastAPI와 DB(MySQL) 연결하기 (0) | 2022.11.30 |
ORM vs SQL Mapper (0) | 2022.11.05 |
[FastAPI] FastAPI를 이용한 서버 구축 (0) | 2022.10.24 |