2010-05-21 5 views
1

나는 utf-8을 사용하여 실행되는 레일 응용 프로그램을 가지고 있습니다. 그것은 mysql 데이터베이스를 사용하며, 모든 테이블은 mysql의 기본 charset 및 데이터 정렬 (즉, latin1)을 사용합니다. 따라서 latin1 테이블에는 utf-8 데이터가 들어 있습니다. 물론, 좋지는 않지만 정말 관심이 없습니다. 연결 인코딩이 latin1이기 때문에 모든 것이 잘 작동하므로 mysql은 문자 세트간에 변환하지 않습니다.rails, mysql charsets & encoding : binary

하나의 문제 : 하나 개의 테이블에 대한 UTF-8 전체 텍스트 인덱스가 필요합니다

mysql> show create table autocompletephrases; 

... AUTO_INCREMENT=310095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

하지만 : 내 레일 응용 프로그램에서 문자 집합 사이의 변환 싶지 않아요. 그러므로 나는/난 그냥 설정 설정할 수 있는지 알고 단지 SET NAMES '진'의 MySQL에 연결할 때 호출 database.yml을

production: 
    adapter: mysql 
>>>> encoding: binary 
    ... 

을하고 싶습니다. 그것은 내 경우에 효과가있는 것처럼 보입니다. 왜냐하면 mysql이 문자셋 (mySQL docs) 사이를 변환하도록 강제하기 때문입니다. 이 문제에 대해 아는 사람이 있습니까? 부작용은 없습니까?

아니면 다른 의견이 있으십니까? 그러나 나는 전체 데이터베이스를 UTF-8로 변환하는 것을 피하고 싶습니다.

많은 감사! Benjamin

+0

'나는 차를 가지고있다. 스퀘어 휠이지만 괜찮아 보인다. 단 한가지 문제 : 습격하고 싶습니다. 유일한 해결책을 피하기위한 합리적인 이유는 무엇입니까? –

답변

0

나는 단지 전환하기 쉬운 이유가있는 것처럼 느껴지고, 미래에 전환 할 필요가있을 때까지 일시적으로 문제를 해결할 무언가를 소개합니다.

나는 지금 막 변환함으로써 미래의 고통을 덜어 줄 것입니다.