Ruby on rails 迁移后更新数据的最佳方法是什么?

Ruby on rails 迁移后更新数据的最佳方法是什么?,ruby-on-rails,Ruby On Rails,在Rails/Activerecord中,我更改了一个字段,使其成为必需字段;我想跑步 AppVersion.where('content_rating为NULL')。每个{av | av.update_列('content_rating',7)} 确保内容分级不为空 据我所知,迁移并不是真正更改记录的好地方。在Rails结构中是否有“只执行一次”的方式来运行代码?是的,您可以创建一个rake任务: 如果需要,可以在迁移中运行任务: $ rails g task update_version

在Rails/Activerecord中,我更改了一个字段,使其成为必需字段;我想跑步

AppVersion.where('content_rating为NULL')。每个{av | av.update_列('content_rating',7)}

确保内容分级不为空


据我所知,迁移并不是真正更改记录的好地方。在Rails结构中是否有“只执行一次”的方式来运行代码?

是的,您可以创建一个rake任务:

如果需要,可以在迁移中运行任务:

$ rails g task update_version update_rating_column
$ create lib/tasks/update_version.rake

namespace :update_version do
  desc "Update content_rating"
  task :update_rating_column => :environment do
    AppVersion.where('content_rating IS NULL').each {|av| av.update_column('content_rating', 7) }
  end
end