본문 바로가기
Python/API

기존 database를 가져와서 ORM 만들기

by JONGSKY 2022. 12. 11.
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가 있는 경우

 

class 형태 결과값

 

- 변수명 형태로 나와있는 경우 : primary_key가 없는 경우

 

class 형태가 아닌 결과값

 

3. 마치면서

 

sqlacodegen을 이용하면

기존에 있었던 database도 자동으로 models.py를 만들 수 있게 되었다.

 

그런데 여기서 pk가 없으면 class 형태로 나오지 않는 이슈가 생기게 되었다.

pk를 autoincrement로 추가하는 것은 어렵지 않지만

db에 꼭 pk가 있어야 할까, 있어야 한다면 그 이유는 무엇이고 없어도 된다면 장단점은 무엇일까 궁금해졌다.

 

 

 

 

728x90
LIST