예전엔 MYSQL (MariaDB) 를 쓸때 Cursor 를 실행 시킨 후 _last_executed 를 잘 썼는데, 언제부터 인지 API가 작동을 안해서 Query가 잘못되었나? 아님 파이썬 코드에 문제가 있나? Parameter가 문젠가? 등등 원인이 될만한 버그를 찾기 위해 많은 시간을 디버깅에 애쓴적이 있다.
쿼리는 아무리 봐도 문제가 없었는데 쿼리를 담은 커서만 실행시키면 API가 뻗어 버리는 걸 지켜보다보니 내가 뻗어버릴 것만 같았고 답답해 미칠려던 찰나에, 실행된 쿼리를 확인하기 위해 작성한 logger.debug(cur._last_executed) 문장을 지웠더니 정상 실행 되는게 아닌가?
급한대로 logger.debug(cur._last_executed) 문장들을 전부 주석처리하고 API를 계속 만들어 갔다.
요즘은 API를 통해 전달받은 Parameter들로 서버에서 Database 코딩 작업이 좀 많아지다 보니, Parameter값들로 채워진 쿼리 문장들이 정상적으로 만들어지고 제대로 실행되는지를 확인하기 위해 _last_executed 의 필요성이 더욱 절실해 졌다.
아~~~ 이게 웬일? _last_executed 가 없어진게 아니고 바뀐거였나 보다.
_last_executed ==> _executed
요로코롬 바뀐걸 모르고 있었네. 에혀 ㅠㅠㅠ
logger.debug(cur._last_executed) 문장을 logger.debug(cur._executed) 로 바꿔주면 문제없이 실행 될 것이다.
혹, _executed 로 바꿨는데도 실행이 안될 경우에는, DB 접속하고 Cursor 생성 후
cursor().execute('set profiling = 0')
이렇게 환경변수를 설정해 보길 바란다.
흠... 근데 이상한건 왜 컴파일러가 에러로 안 잡아낼까? 갑자기 또 궁금해지네...
'Tech Story' 카테고리의 다른 글
[ SQL ] Query 작성 시 count() 함수의 함정 (0) | 2023.12.06 |
---|---|
[ PYTHON ] Ubuntu 20 에 Python 설치 중 setuptools 오류 (0) | 2023.11.29 |
RunBTI 달리기 성향 분석 출시 (0) | 2023.10.22 |
[Agile] 애자일 방법론에 대한 단상(短想) (0) | 2023.08.23 |
[Flutter]스콜 앱미터기 재등록, 그리고 ChatGPT 와 첫대화~~~ (0) | 2023.08.09 |