sqlalchemy greenlet_spawn error 해결

프로필 사진mingke

FastAPI Logo

목차

개요

FastAPI + 비동기 SQLAlchemy사용하다 아래와 같은 에러를 만났습니다. 별거아니 에러인데 어이없게 시간을 좀 써서 기록합니다.

💡

sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place?

해결

이런 에러를 만났을 때 expire_on_commit = False를 주니 간단하게 해결되었습니다.

async_session = async_sessionmaker(
    connection, autoflush=False, autocommit=False, expire_on_commit=False
)

잊어버렸을 경우 찾아보기 위해 기록을 해놓았습니다.