반응형
데이터베이스에서 개체 컬렉션을 가져와 데이터베이스에 연결되지 않은 다른 프로세스로 전달하려고합니다. 내 코드는 다음과 같지만 계속 표시됩니다.
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 목록에서 중복 문자열 제거 (0) | 2020.09.23 |
---|---|
파이썬 How to indent the contents of a multi-line string? (0) | 2020.09.23 |
파이썬 Python argparse command line flags without arguments (0) | 2020.09.23 |
파이썬 Syntax error on print with Python 3 (0) | 2020.09.23 |
파이썬 문자열에서 모든 공백 제거 (0) | 2020.09.23 |
댓글