나는 트위터 응용 프로그램을 만들고 있는데, 사용자가 페이지를 업데이트 할 때마다 트위터에서 최신 메시지를 다시로드하고 이전에 이미 작성하지 않은 한 로컬 데이터베이스에 저장합니다. 이것은 개발 환경 (데이터베이스 : sqlite3)에서 잘 작동하지만 프로덕션 환경 (mysql)에서는 이미 생성 되었더라도 항상 메시지를 다시 만듭니다.레일즈 프로덕션 환경에서 디버그
메시지 생성은 각 메시지가 가지고있는, twitter_id에 의해 확인된다 : 내가 저장 한 데이터베이스를 볼 때
msg = Message.find_by_twitter_id(message_hash['id'].to_i)
if msg.nil?
# creates new message from message_hash (and possibly new user too)
end
msg.save
분명히, 생산 환경에서은 (어떤 이유로 트위터 ID로 메시지를 찾을 수 없습니다입니다 모든 속성은 정확하게 전에).
이 긴 소개로, 내 주요 질문은 어떻게 디버깅합니까? 이미 주요 문제에 대한 답변을하지 않는 한 나는 production.log에서 볼 때 (물론 :), 그것은 단지 같은 것을 보여줍니다
Processing MainPageController#feeds (for 91.154.7.200 at 2010-01-16 14:35:36) [GET]
Rendering template within layouts/application
Rendering main_page/feeds
Completed in 9774ms (View: 164, DB: 874) | 200 OK [http://www.tweets.vidious.net/]
을 ...하지만 데이터베이스 요청, logger.debug 텍스트 또는 문제를 찾는 데 도움이 될만한 자료가 필요합니다.
MySQL을 개발 중에 사용하지 않는 이유는 무엇입니까? –
메시지 해시는 무엇으로 구성 되나요? – Eimantas
John, sqlite3이 기본값으로 제공됩니다.하지만 실제로 개발 및 프로덕션 모두에서 동일한 데이터베이스를 사용하는 것이 더 쉽습니다. – JussiR