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