0

移行中に特定の行にいくつかの値を設定しました。ロールバックでこれをどのように処理しますか。空の 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
4

2 に答える 2

1

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
于 2013-01-21T13:16:46.930 に答える
1
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
于 2013-01-21T13:22:00.723 に答える