0
我是RoR的新手,需要一些遷移幫助。 我有一個現有的數據庫,包含一個MySQL數據庫中的「日期」列。 我需要將它們存儲到3個獨立的整數字段(年,月,日)(不要問我爲什麼,因爲我的客戶是白癡)...並需要將現有列遷移到新列(現有數據庫已經包含數據)。我只是想知道如何在遷移中做到這一點?Ruby on rails - 使用遷移工具將數據庫中的日期字段遷移到3個整數字段
謝謝
我是RoR的新手,需要一些遷移幫助。 我有一個現有的數據庫,包含一個MySQL數據庫中的「日期」列。 我需要將它們存儲到3個獨立的整數字段(年,月,日)(不要問我爲什麼,因爲我的客戶是白癡)...並需要將現有列遷移到新列(現有數據庫已經包含數據)。我只是想知道如何在遷移中做到這一點?Ruby on rails - 使用遷移工具將數據庫中的日期字段遷移到3個整數字段
謝謝
經過一番挖掘......解決了它。 遷移不是這樣做的首選方式,應使用rake任務。
首先,使用遷移生成新列,而不是在模型中添加新的attr_accessible。
要生成rake任務,請按照http://railsguides.net/how-to-generate-rake-task/鏈接。
,並使用下面的代碼,假設包含日期列的模型被稱爲訪問
namespace :visit_date_migration do
desc "Migrate visit date into 3 integer columns for year/month/date"
task :migrate_date => :environment do
Visit.all.each do |visit|
unless visit.visit_date.nil? || visit.visit_date == 0
year = visit.visit_date.year
month = visit.visit_date.month
day = visit.visit_date.day
visit.visit_date_year=year
visit.visit_date_month=month
visit.visit_date_date=day
visit.save!
end
end
end
end
並運行rake任務像一個正常的任務。