0
在我的Rails應用程序中,我有一個屬性「標題」,我想更改數據庫中「標題」的所有實例,例如,「蘋果派」爲「蘋果蛋糕」。有沒有辦法做到這一點,而不是單獨修改每一個,因爲我有這麼多?在heroku數據庫中更改屬性值
在我的Rails應用程序中,我有一個屬性「標題」,我想更改數據庫中「標題」的所有實例,例如,「蘋果派」爲「蘋果蛋糕」。有沒有辦法做到這一點,而不是單獨修改每一個,因爲我有這麼多?在heroku數據庫中更改屬性值
你可以做一個rake任務做的修改:
namespace :update do
desc "Update title"
task :title_fix => :environment do
MyClass.where(:title => 'old title').each do |t|
t.update_attributes(title: 'new title')
end
end
end
,然後在命令行中運行:
rake update:fix_title
或者,如果你是勇敢的,你可以做到這一切在Rails控制檯,如:
MyClass.where(:title => 'old title').each { |t| t.update_attributes(title: 'new title') }
但我討厭以非文件方式進行數據庫的變化...
好的,會試試這個(我不是很勇敢)。這將更新它在我的heroku數據庫,而不僅僅是本地主機?命名空間耙是否在routes.rb中? – tessad 2013-02-27 02:19:32
您會將rake文件添加到您的項目(lib/tasks/update.rb)中,然後使用'heroku run rake update:fix_title'遠程運行它。一定要先在測試環境中嘗試一下!切勿在沒有測試的情況下在生產中運行這樣的事情 – 2013-02-27 02:21:29
好吧,它在我的本地主機(我不得不重新命名爲update.rake而不是update.rb)。我想我需要咬下子彈,並與heroku一起前往。有什麼可能出錯:)? – tessad 2013-02-27 02:46:43