session
개체를 SQLAlchemy와 함께 사용하는 방법과 매핑 된 개체의 단위 테스트를 구성하는 방법에 대한 지침이 필요합니다. 내가 할 수 싶은 것이SQLAlchemy : 누가 "세션"을 담당합니까? (그리고 세션으로 단위 테스트하는 방법)
는 다음과 같이이다 : 이것을 달성하기 위해
thing = BigThing() # mapped object
child = thing.new_child() # create and return a related object
thing.save() # will also save the child object
, 나는 BigThing
실제로 자신을 추가 (그리고 어린이) 데이터베이스에있는의 생각 - 하지만 어쩌면 이것은 좋은 생각이 아닐까요? 가능한 한 빨리 개체를 추가 할 수
이유 중 하나는 데이터베이스에 의해 할당 된 자동 id
값입니다 - 빨리가 가능하며, 적은 문제가
가장 좋은 방법으로는 무엇입니까 (? 오른쪽)이 있습니다 session
개체를 관리 하시겠습니까? 누가 session
을 담당합니까?
필요한 경우에만 생성해야합니까? 아니면 오랫동안 구 했나요?
매핑 된 개체에 대한 단위 테스트는 어떻게됩니까? ... session
은 어떻게 처리해야합니까? 매핑 된 객체를 자동으로 데이터베이스에 추가하는 것만으로도 괜찮습니까? 아니면 문제가 될 것인가?
좋아, 나는 이해할 수있다 : "객체 박스"... 그래서 나는 모든 객체가 데이터베이스에 커밋되는 한 번에 작업하는 모든 관련 객체들을위한 컨테이너와 같다. 함께. 유닛 테스팅에서는 테스트 당 하나의 세션이 있어야한다고 생각합니다. 웹 서버의 경우 요청 당 하나의 세션 (?). 그리고 데스크톱 응용 프로그램의 경우 ... 앱 수명 동안 단 하나의 세션 만있을 수 있습니까? 아니면 수행되는 모든 "작업"에 대해 새로운 세션이 있어야합니까? 완료하고 다시 사용할 때 "상자를 비우십시오"할 수 있습니까? –
전체 데스크톱 응용 프로그램에 대해 단일 세션을 사용할 수 있으며 각 작업마다 별도로 사용할 수 있습니다. 나중에는 다소 느리지 만 더 안정적입니다. 세션을 지우는'expunge_all()'메쏘드가 있습니다. –