5 건의
MySQL 검색결과

모바일 생활이 되면서,  콘텐츠 내의 이모티콘도 함께 들어갈 수 있게 된다.

 

Mysql(MariaDB) 에서는 이모티콘 지원을 위해  UTF8MB4 인코딩(https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)  을  지원하게 되었다 

  

레일즈에서도 UTF8MB4를  설정하면 사용은 가능하지만


마이그레이션 파일 내에서 인덱싱을 넣으면 다음과 같은 에러가 나곤한다


Mysql2::Error: Specified key was too long; max key length is 767 bytes: CREATE UNIQUE INDEX 'unique_schema_migrations' ON 'schema_migrations' ('version')

 

다음과 같은 파일을 넣어서 UTF8MB4 에 대한 지원을 제대로 하도록 하고,  프로젝트 재시작

# config/initializers/utf8mb4.rb require 'active_record/connection_adapters/abstract_mysql_adapter' module ActiveRecord module ConnectionAdapters class AbstractMysqlAdapter NATIVE_DATABASE_TYPES[:string] = { :name => "varchar", :limit => 191 } end end end

 

config/database.yml 파일도 수정

# config/database.yml default: adapter: mysql2 encoding: utf8mb4 charset: utf8mb4 collation: utf8mb4_unicode_ci


그리고 데이터베이스 재생성(중 요 !!!! 아래부터 보세요 )

$ rails db:drop

$ rails db:create

$ rails db:migrate

$ rails db:seed

만약  데이터베이스 재생성이 불가할 경우에는 (라이브거나, 데이터가 이미 들어가 있고, 백업하기 싫을 때) 

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
MODIFY column_name TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;


 되도록이면  시드 파일을 생성해서 데이터베이스 재생성이 좋을 거 같아요.


TokenMarket ICO calendar