【Rails】MySQLテーブルの文字コードを変更する
テーブルの文字コードをutf8mb4に変更するさいに調べていたが既存のテーブルについては新たにmigrationファイルを作って文字コードを変更するSQLを実行するのが必要そうだったが、調べるのに時間かかったのでメモしておく。
$ ./bin/rails g migration change_table_charset
db/migrate/xxxxxxxxxxx_change_table_charset.rb
class ChangeTableCharset < ActiveRecord::Migration[5.1] def change ActiveRecord::Base.connection.tables.each{|table| sql = "ALTER TABLE #{table} CONVERT TO CHARACTER SET utf8mb4" ActiveRecord::Base.connection.execute(sql) } end end
全テーブルに対して、順次 alter table実行していく。こんなので本当によいのかは不明。けどできた。