У меня была похожая проблема импорта внешних данных в datamapper. Я сделал дамп CSV данных из внешней базы данных, затем написал импорт, который прочитал CSV и создал новую запись.
class Staff
include DataMapper::Resource
property :id, String, :key => true
property :full_name, String
property :email, String
has n, :stages
end
Тогда:
CSV.parse(staff) do |row|
@staff = Staff.create(
:id => row[1],
:full_name => row[0],
:email => row[0].downcase.gsub!(' ', '.')
);
@staff.save
Возможно, такой подход подойдет?