我有一个ruby脚本,它将读取某些CSV文件中的数据并将它们导入sqlite数据库。 我可以使用以下命令从控制台轻松完成此任务:
sqlite> .import <filename> <tablename>
sqlite> .import test.csv PROJECT_REPORT
如何实现相同形式的Ruby脚本?
我正在做类似跟随的事情(只是一个工作):
CSV.foreach("timelog.csv") do |row|
database.execute("INSERT INTO PROJECT_REPORT(
Date,User,Activity,Comment)
values
(#{row[0]}, '#{row[1]}', '#{row[2]}', '#{row[3]}') ")
end
答案 0 :(得分:2)
如果这是一次性的工作,你有一个简单的脚本,为什么不坚持你已经拥有的东西?如果您需要增加ruby脚本并希望扩展它,请查看DataMapper(或其他ORM)作为SQLite数据库的接口。创建一个简单的类来包含Date,User,Activiy和Comment字段,让DataMapper对数据库进行繁重的工作。
更新了datamapper示例 这是datamapper实现的简单伪示例。 未经测试!
#datamapper configuration here
#.
#.
class UserActivity
include DataMapper::Resource
property :id, Serial
property :log_date, DateTime
property :user, Text
property :activity Text
property :comment Text
property :created_at, DateTime
end
所以在上面的例子中使用它......
CSV.foreach("timelog.csv") do |row|
userActivity = UserActivity.new( :log_date => row[0], :user => row[1], :activity => row[2], :comment => row[3])
userActivity.save!
end
显然这不是一个完整的解决方案,但它会让你开始。