这可能是重复的,但我找不到有人问相当这个问题。
我的理解*是,如果我想将数据从外部源迁移到我的Rails应用程序的数据库,我应该使用迁移。从我的初步研究看来,我能做的就是使用像FasterCSV这样的工具在迁移(.rb)文件本身中解析CSV文件(例如)。
这是正确的做法吗?如果是这样,我应该在哪里放置那个CSV文件 - 似乎如果迁移毕竟是可逆/可重复的,那么CSV数据应该保存在一个稳定的位置。
*如果我对RoR还不熟悉,我是否完全错误地知道如何解决这个问题。
答案 0 :(得分:1)
你可以把它写成没有FasterCSV的rake作业,尽管我同时使用它们。
Write rows to 'csvout' file.
outfile = File.open('csvout', 'wb')
CSV::Writer.generate(outfile) do |csv|
csv << ['c1', nil, '', '"', "\r\n", 'c2']
...
end
outfile.close
此文件将输出写入rake文件的位置。在您的情况下,您可以将其放在CSV的单独文件夹中。我个人会将其从应用程序结构的其余部分中删除。
答案 1 :(得分:1)
您可能需要查看seed_fu来管理它。它的好处是能够轻松更新数据库中已有的数据。您可以将CSV转换为种子文件,这只是一个Ruby代码(在那里提供了示例代码)。