【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実行していく。こんなので本当によいのかは不明。けどできた。