티스토리 뷰

개발자노트

ActiveRecord, MySQL tips

앤디군 2005. 6. 24. 15:04
스크립트 언어(PERL, Ruby등)에서 MySQL을 사용할 때 클라이언트 컨넥션이 사용할 문자셋이 제대로 지정되어있지 않은 경우 문자가 깨지는 경우가 있다.
보통은 컨넥션을 만든 뒤 SET CHARACTER SET utf8명령과 같이 현재 컨넥션이 사용할 문자셋을 지정해주게 된다.

Ruby rails로 utf8문자셋으로 된 MySQL DB를 사용할 일이 있었는데 DB접근이 상당히 추상화된 rails에서 컨넥션에 대해 문자셋을 지정해줄 수 있는 부분을 찾기가 쉽지 않았다. ActiveRecord에 문자셋 지정코드를 삽입해보기도 했으나 프레임워크의 소스를 고치는게 별로 바람직하지 않고 DB의 문자셋에 따라 소스를 계속 고쳐야하기 때문에 다른 방법을 찾아보았다.
결국 찾은 방법은 다음과 같다.

$RAILS_HOME/config/environment.rb를 열어 ActiveRecord가 DB에 연결하는 부분이 있는데 그 밑에 문자셋 지정을 해준다.
ActiveRecord::Base.establish_connection
ActiveRecord::Base.connection.execute("SET CHARACTER SET utf8") # 이 부분 추가.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함