본문 바로가기

Python/FastAPI

Sqlacodegen 사용하여 SqlAlchemy Model 자동생성하기



새로운 테이블을 구성하는 것이 아니라 이미 구축되어 있는 데이터베이스에 연결하여 이를 매핑해야하는 상황이다.
ORM 모델을 만들어야하는데 181개의 컬럼인 테이블을 직접 만드는거 자체가 말이 안되서 역시나 파이썬 라이브러리가 있을 거라고 굳게 믿고 검색했더니 sqlacodegen라는 라이브러리가 존재한다.

관심 있는 사람들은 깃허브 링크를 참고 -> https://github.com/agronholm/sqlacodegen

빠르게 들어가보자

pip

pip install sqlacodegen

 

Command

터미널에서 DB 접속 정보와 함께 생성할 모델을 정의하게 되면 해당 데이터베이스에 있는 테이블들이 모두 SqlAlchemy Class 파일로 생성이 된다.

sqlacodegen postgresql://dongheonlee:1111@localhost:5432/testdb > model.py

Result

model.py라는 이름의 SqlAlchemy model이 만들어진다.
pk가 없는 테이블은 Class가 아닌 Table객체로 생성이 되는 것을 명심하자