[python] SQLAlchemy-Utils에서 제공하는 트랜잭션 관련 함수 알아보기
SQLAlchemy-Utils는 SQLAlchemy를 보완하는 많은 유틸리티를 제공합니다. 이 중에서 트랜잭션 관련 함수를 사용하여 더욱 간편하게 데이터베이스 트랜잭션을 다룰 수 있습니다. 이 글에서는 SQLAlchemy-Utils에서 제공하는 트랜잭션 관련 함수를 알아보겠습니다.
1. transaction
데코레이터
transaction
데코레이터를 사용하면 함수 실행 중에 트랜잭션을 생성하고, 성공적으로 완료되면 커밋하고, 예외가 발생하면 롤백합니다.
from sqlalchemy_utils import create_database, database_exists, transaction
@transaction
def bulk_insert(objects):
for obj in objects:
session.add(obj)
2. transaction_session
컨텍스트 매니저
transaction_session
컨텍스트 매니저를 사용하여 트랜잭션을 더욱 강력하게 제어할 수 있습니다.
from sqlalchemy_utils import create_database, database_exists, transaction_session
with transaction_session() as session:
obj1 = MyModel(name='foo')
obj2 = MyModel(name='bar')
session.add(obj1)
session.add(obj2)
# 위의 블록이 성공적으로 실행되면 커밋, 예외가 발생하면 롤백됩니다.
SQLAlchemy-Utils의 트랜잭션 관련 함수를 사용하면 데이터베이스 트랜잭션을 더 쉽게 다룰 수 있습니다. 이를 활용하여 데이터베이스 작업을 보다 안정적으로 처리할 수 있습니다.
더 많은 정보는 SQLAlchemy-Utils 공식 문서에서 확인할 수 있습니다.