본문 바로가기
코딩 프로그래밍/PYTHON 파이썬

sqlalchemy 테이블 컬럼 목록

by 프즈 2023. 3. 30.
반응형

파이썬에서 데이터베이스 활용할 때 sqlalchemy 사용해서 데이터를 가져올 수 있는데요. sqlalchemy 를 통해 테이블이나 컬럼 목록을 가져올 수 있어요. 물론 all_tables 나 information_schema.tables 같은 테이블을 조회할 수도 있지만 DB 상관없이 동작하도록 하려면 쿼리보다는 sqlalchemy 에서 제공하는 기능을 이용하면 DB 상관하지 않고 사용할 수 있는 코드를 만들 수 있어요.

from sqlalchemy import create_engine
from sqlalchemy import inspect
from sqlalchemy.pool import NullPool

url = "postgresql://아이디:비번@서버:포트/디비"
engine = create_engine(url, echo=False, poolclass=NullPool)

inspector = inspect(engine)
schemas = inspector.get_schema_names()

for schema in schemas:
    print("schema: %s" % schema)    
    for table_name in inspector.get_table_names(schema=schema):        
        print("table name: %s" % table_name)
        for column in inspector.get_columns(table_name, schema=schema):
            print("Column: %s" % column)

engine.dispose()

inspector 이용해서 정보를 가져 올 수 있어요. 가장 먼저 보통 sqlalchemy에서 engine 만드는 방법으로 create_engine을 이용해서 engine을 만들어주고 나서 inspect를 이용해서 inspector 변수를 만들어 사용 할 수 있어요.

inspector.get_schema_names 스키마 목록을 리스트로 받아 올 수 있습니다. 대부분 데이터베이스에는 스키마 개념이 있으니 필요합니다.

inspector.get_table_names 스키마 이름을 파라미터로 전달하여 테이블 목록을 가져올 수 있습니다.

inspector.get_columns 테이블과 스키마 이름을 전달하여 컬럼 목록을 가지고 올 수 있어요. 

반응형

댓글