2012-05-18 2 views
0

내가 플라스크-SQLAlchemy의 일부 예기치 않은 동작을 보게 되네요을 따기하지, 나는 무슨 일이 일어나고 있는지 이해가 안 : 나는 기록의 변경이 예를 들어, 사용 한 경우영약 SQLAlchemy의 변경된 기록

MySQL Workbench 또는 Sequel Pro, 실행중인 앱 (Apache에서 WSGI 또는 명령 줄에서 실행 중인지 여부)은 변경 사항을 선택하지 않습니다. WSGI 파일을 터치하거나 앱을 다시로드하여 (명령 줄) 앱을 다시로드하면 변경된 레코드를 볼 수 있습니다. 대화 형 셸에서 all() 쿼리를 실행하여이 사실을 확인했으며, 동일합니다. 셸을 종료하고 다시 시작하기 전까지 변경 사항이 없습니다. 나는 여기에 엄청나게 명백한 뭔가를 놓치고 있다고 느낍니다. 하나의 테이블, 조인 등이 없습니다. 2.7.3에서 MySQL 5.5.19 및 SQLA 0.7.7 실행

+0

이것은 세션 문제입니다. 바. – urschrei

답변

0

앱의 SELECT는 아마도 독자적으로 수행됩니다. 다른 세션 (예 : MySQL Workbench 연결)에서 제출 한 변경 사항은 SELECT에 아직 표시되지 않습니다. mysql 일반 로그를 활성화하거나 create_engine (...) 정의에 'echo : false'를 설정하여 쉽게 확인할 수 있습니다. 명시 적 커밋 또는 롤백이 필요한 SET AUTOCOMMIT = 0 모드에서 SQLAlchemy 세션을 시작할 가능성이 있습니다 (다시 시작/다시로드 할 때 Flask-SQLAlchemy가 자동으로 수행합니다). 자동 커밋 = true 모드에서 세션을 시작하거나 SELECT를 호출하기 전에 명시 적 커밋/롤백을 수행하십시오.