2013-10-03 4 views
0

현재 두 개의 다른 세션 개체가있는 SQLAlchemy를 사용하고 있습니다. 한 객체에서 mysql 데이터베이스에 행을 삽입하려고합니다. 다른 세션에서 최대 행 ID에 대해 해당 데이터베이스를 쿼리하고 있습니다. 그러나 두 번째 세션은 데이터베이스에서 최신 항목을 쿼리하지 않습니다. 데이터베이스를 수동으로 쿼리하면 더 높은 최대 행 ID가 표시됩니다.SQLAlchemy에서 행을 업데이트하는 방법

두 번째 세션에서 라이브 데이터베이스를 쿼리하도록하려면 어떻게해야합니까?

+0

왜이 용도로 두 개의 세션이 필요합니까? –

+0

아마도 그렇게하지는 않겠지 만 코드가 현재 작성된 방식이므로이 문제에 대한 간단한 수정 사항이있는 경우 리팩터링하지 않을 것입니다. –

+0

간단한 수정은 코드를 다시 작성하는 것입니다. –

답변

1

첫 번째 세션은 데이터베이스 변경 내용을 플러시해야합니다.

세션은 메모리에있는 모든 개체를 보유하고 데이터베이스에 함께 플러시 (효율성을 위해 지연로드)합니다. 따라서 first_session에 의해 이루어진 변경 사항은 데이터베이스에서 데이터를 읽는 second_session에 표시되지 않습니다.

관련 문제