1つ目
あるテーブルに新しくカラムを追加し、既存のカラムデータを新規カラムにコピーする
ModelName.update_all(new_column = old_column)
2つ目
テーブルサイズが大きい場合、レコードを分割して処理を実行することも可能
ModelName.in_batches(of: 10000) do | model_name| model_name.update_all(new_column = old_column) sleep 1 end
3つ目
既存の複数カラムデータをconcatして新規カラムにコピーする
ModelName.update_all('new_column = CONCAT(IFNULL(old_column1, ""), IFNULL((old_column2, ""))')
コピー元のカラムにnullが含まれている場合、CONCATされないのでIFNULLで回避する必要がある。