LoginSignup
13
14

More than 5 years have passed since last update.

Rails4.0.0.rc1でutf8mb4対応がされている件

Last updated at Posted at 2013-05-25

2013/05/28 追記
なぜかエラーが出るのでコードを追ってみたら、どうやら該当箇所はまだ呼ばれないらしい。
何気にRails 4.0.0 (unreleased) とも書いてあった。
テストコードを参考に、config/initializersに適当なファイルを作成、その中で

ActiveRecord::Base.connection.initialize_schema_migrations_table

と書いてやると、utf8mb4チェックが走った。
本リリースには乗ってほしいな。

以下本文

iOSの絵文字をMySQLで扱うためには、utf8mb4設定をしなければならない。
Rails、MySQL環境でutf8mb4を利用するためには、文字コードの設定だけでなく、
http://qiita.com/items/7ac0c32c5264eac2b8bb
のような対応が必要だった。

Rails4 rc1がリリースされたことを知り、色々触っていたらこの件について対応がされているのを見つけた。
該当コミットはこちら
https://github.com/rails/rails/commit/8744632fb5649cf26cdcd1518a3554ece95a401b

文字コードがutf8mb4の場合、デフォルトで作成されるユニークインデックスはlimitオプションが自動的に設定される。
なので、lib/active_record/schema_migration.rbの中身を書き換えたりしなくても良い。
ただし、自前で作成するユニークインデックスは自動でlimitが設定されないので、

20130525000000_add_index_to_users.rb
add_index :users, :email, unique: true, length: { email: 191 }

のように指定してやる必要はある。

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14