私は2つのカラム(Column_AとCOLUMN_B)既存のレコード(履歴データ)でレールの移行を行う方法は?
とモデル(Model_A)を持っている私のモデルは、その中に次のような方法があり、2はcolumn_A
Class Model_A < ActiveRecord::Base
before_save :set_column_B
def set_column_B
self.column_B = get_value_from_column_A
end
def get_value_from_column_A
# manipulate data from A to get value
column_A.join(,)
end
end
に基づいてCOLUMN_Bの値を生成し、私は私がする必要があります知っています移行の最初のステップとして新しい列Bを作成します。ただし、データベース内の既存のレコードをすべて変更して、column_Bに正しい値を持たせるにはどうすればよいですか。 これにスクリプトやRakeタスクを書かなければならないのでしょうか、それとも私が移行を通してやることができるのでしょうか?あなたは次の操作を行うことができ、移行に
から、この移行のような
何かをSQLの方法を使用してすべてのレコードを更新することができますSQL自身でそれを行うことができる場合| x | x.save! } ' –
ああ、それはもっと効率的だろう。この場合、 – Ucpuzz