首先,我假設你正在使用MySQL等關係數據庫中,並且您有表的一些管理的數量。
下面是一個簡單的方法,其涉及不連續的步驟:
對於每個表,
- 寫SQL查詢用於待導入的每個表。一次運行或批量運行每個表導入。
- 在您的Rails控制檯中,通過嘗試實例化模型來驗證數據。
但是,使用這種方法,你可能有數據驗證錯誤。
的第二種方法可以使用CSV。這裏我假設你在Ruby 1.9.3中使用CSV。您可以將其切換爲對較老的Rubies使用FasterCSV。
- 導出數據庫到CSV。
在rake任務,你可以嘗試用手一些數據映射:
# Put this in lib/tasks/import.rb
require 'csv'
namespace :import do
desc 'import some data!'
task :from_csv do
CSV.foreach('path/to/file.csv') do |row|
model = YourNewModel.new(field_xyz: row[xyz], ...)
# ... maybe do some other stuff here if you need to process anything
model.save if model.valid? # maybe check if it's valid
end
end
end
這裏當然,你將有你的模型字段正確映射到您的CSV行。 Check out the 1.9.3 CSV docs here.
現在運行rake任務,像這樣:
$ cd /path/to/your/app && rake import:from_csv