본문 바로가기
파이썬

파이썬 SQLAlchemy, get object not bound to a Session

by º기록 2020. 9. 23.
반응형

데이터베이스에서 개체 컬렉션을 가져와 데이터베이스에 연결되지 않은 다른 프로세스로 전달하려고합니다. 내 코드는 다음과 같지만 계속 표시됩니다.

sqlalchemy.exc.UnboundExecutionError: Instance <MyClass at 0x8db7fec> is not bound to a Session; attribute refresh operation cannot proceed

get_list () 메소드 외부에서 내 목록의 요소를 보려고 할 때.

def get_list (obj):
    sesson = Session()
    lst = session.query(MyClass).all()
    session.close()
    return lst

그러나 이것을 사용하면 :

def get_list_bis (obj)
    session = Session()
    return session.query(MyClass).all()

요소를 사용할 수 있지만 세션이 닫히지 않았기 때문에 세션 상태에 대해 걱정합니다.

내가 여기서 무엇을 놓치고 있습니까?

 

해결 방법

 


첫 번째 함수 예제에서 다음 줄을 추가해야합니다.

session.expunge_all()

전에

session.close()

보다 일반적으로 첫 번째 예와 같이 세션이 즉시 닫히지 않는다고 가정 해 보겠습니다. 아마도 이것은 웹 요청의 전체 기간 또는 이와 유사한 기간 동안 활성 상태로 유지되는 세션 일 것입니다. 이 경우 expunge_all 을 원하지 않습니다. 더 수술을 원할 것입니다.

for item in lst:
    session.expunge(item)

 

참조 페이지 https://stackoverflow.com/questions/8253978

 

 

반응형

댓글