2014年11月25日火曜日

ActiveRecordのMigrationでAddColumnしたカラムに別カラムの値を代入する。

ActiveRecordのMigrationでAddColumnしたカラムに別カラムの値を代入する方法です。
結果直接、SQLを投げる結論に行き着きました。
def change
  add_column :users, :value2, :integer
  execute 'UPDATE users SET value2 = value1'
end
Usersテーブルにvalue2カラムを追加して、初期値として、value1の値をいれるようなケースを想定しています。

他の方法として、modelを使うパターンもあります。
class User < ActiveRecord::Base; end

def change
  add_column :users, :value2, :integer

  User.all.each do |user|
      user.value2 = user.value1
      user.save
  end
end

0 件のコメント:

コメントを投稿

statistics

Arsip