移行中に特定の行にいくつかの値を設定しました。ロールバックでこれをどのように処理しますか。空の null 値をダウンに設定したい
def up
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => 'val1', :val2 => 'val2');
end
def down
# What should we do here to revert the migration
end
移行中に特定の行にいくつかの値を設定しました。ロールバックでこれをどのように処理しますか。空の null 値をダウンに設定したい
def up
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => 'val1', :val2 => 'val2');
end
def down
# What should we do here to revert the migration
end
rake db:rollback STEP=2 を実行できます。
戻したいマイグレーションの数を 2 に置き換えることができます。
これを試すこともできます:
def up
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => 'val1', :val2 => 'val2');
end
def down
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => nil, :val2 => nil);
end
rake db:migrate:down VERSION=version_number
def up
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => 'val1', :val2 => 'val2')
end
def down
f = Foo.where(:name => 'some').first
f.update_attributes(:val1 => nil, :val2 => nil) if f.present?
end