kan*_*008 4 ruby ruby-on-rails rails-migrations
我需要使用 RAILS 迁移更新数据库中的表数据。
Sample:
Table: Table_A(Col_A(number), Col_B(varchar),...)
Query: UPDATE Table_A SET Col_B = "XXX" where Col_B = "YYY"
Run Code Online (Sandbox Code Playgroud)
使用 RAILS 迁移来执行此操作的最佳方法是什么?我什至不确定 RAILS 迁移是否是更新数据库中数据的方法。任何解释都会有帮助。
通常最好在 rake 任务中执行此类大数据更新。我通常编写它们,以便它们有两个版本:rakechange_lots_of_data:report和rakechange_lots_of_data:update。“报告”版本仅执行 where 子句并输出将更改的内容的列表。“更新”版本使用完全相同的 where 子句,但进行了更改。
这样做的一些优点是:
我更喜欢在 rake 任务中进行任何数据库数据更改,所以就是这样
rake db:migrate代码:
namespace :update do
desc "Update table A to set Col_B to YYY"
task :table_a => :environment do
TableA.where(Col_B: "YYY").update_all(Col_B: "XXX")
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后就可以rake update:table_a执行更新了。
| 归档时间: |
|
| 查看次数: |
2054 次 |
| 最近记录: |