我们在迁移期间在某一行上设置了几个值,我们如何在回滚时处理这个值。我想在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
答案 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