如何还原在迁移期间在回滚上设置的少数值

时间:2013-01-21 12:34:29

标签: ruby-on-rails rails-migrations

我们在迁移期间在某一行上设置了几个值,我们如何在回滚时处理这个值。我想在down

上设置空的空值
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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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