Ash*_*ala 6 mysql rake ruby-on-rails rakefile rails-activerecord
这是我的完整脚本.
我试图做一个rake任务,从目录中的文件收集数据并将它们加载到mysql中.
我修复了local-infile = 1,没什么用.它只是给我错误
namespace :db do
namespace :load do
desc "Load Properties into DB"
task :properties => :environment do
Mysql2::Client.default_query_options[:connect_flags] |= Mysql2::Client::LOCAL_FILES
@files = Dir.entries("db/property_website_scripts/")
connection = ActiveRecord::Base.connection()
for file in @files
next if file == "." || file == ".."
sql = "LOAD DATA LOCAL INFILE '#{Rails.root}/db/property_website_scripts/#{file}'
INTO TABLE properties
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\r\n'
(property_type,property_for,city,state,country......);"
connection.execute(sql)
end
#updating created at and updated at
Property.update_all({:created_at => Time.now, :updated_at => Time.now}, "created_at IS NULL")
end
end
end
Run Code Online (Sandbox Code Playgroud)
我突然遇到了与 gem0.3.11版本相同的错误。mysql2由于我已经使用该版本一段时间了,我认为这是与另一个 gem 的某种依赖问题。尝试升级到版本0.3.12b5,它为我解决了这个问题。