0

我们在迁移过程中为某一行设置了一些值,我们如何在回滚时处理这个问题。我想在 down 上设置空的 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 回答