我应该如何为我的RoR应用程序加载(或更新)数据库?这是“一次性”操作,所以在应用程序中编码似乎很奇怪。在Ruby on Rails模型中加载和提取整个CSV
另外,如何在应用程序运行后访问数据库,模型文件是否位于服务器上的某个位置,可访问“只读”?
谢谢。
我应该如何为我的RoR应用程序加载(或更新)数据库?这是“一次性”操作,所以在应用程序中编码似乎很奇怪。在Ruby on Rails模型中加载和提取整个CSV
另外,如何在应用程序运行后访问数据库,模型文件是否位于服务器上的某个位置,可访问“只读”?
谢谢。
你基本上可以写一个脚本来从CSV文件中加载数据到数据库中。
下面是一个例子,你可以怎么做:
require 'rubygems'
require 'csv'
infile = "db/data/csv/my_data.csv" # location of the file
count = 0
CSV.open(infile, 'r') do |row|
col1 = row[1]
col2 = row[2]
obj = MyObject.new({ :col1 => col1, :col2 => col2 })
obj.save
count += 1
print '.' if (count % 10) == 0
end
puts
puts "Successfully loaded #{count} records into database!"
然后使用Rails command line tool runner运行脚本:rails runner db/scripts/csv_data_loader.rb
。
seeds.rb
是您放置一次性初始化代码的地方。您可以在db
子目录中找到它。这也可能是有趣的:Database seeding。
如果您的应用程序已在生产中,请使用迁移。
使用csv非常有价值。在我的工作中,我已经使用并继续使用它来生成报告。收集一个集合,迭代它,很好地格式化并且有一个报告。 (ActiveRecord比使用裸SQL更容易。) – Tass