我正在尝试开始使用Ruby代码库并致力于添加新的Rake任务。我正在尝试在连接的mySQL数据库上运行.sql文件。
namespace :db do
task :seed do
connection = ActiveRecord::Base.connection
puts connection
sql = File.read('./docker/seed/warehouse-b2b/addresses.sql')
statements = sql.split(/;$/)
ActiveRecord::Base.transaction do
statements.each do |statement|
connection.execute(statement)
end
end
end
end
这里是我如何调用任务rake db:seed --trace
。这是我得到的错误堆栈跟踪信息
Mysql2::Error: Query was empty:
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-3.1.10.3/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `query'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-3.1.10.3/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `block in execute'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-3.1.10.3/lib/active_record/connection_adapters/abstract_adapter.rb:245:in `block in log'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-3.1.10.3/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-3.1.10.3/lib/active_record/connection_adapters/abstract_adapter.rb:240:in `log'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-3.1.10.3/lib/active_record/connection_adapters/mysql2_adapter.rb:288:in `execute'
tasks/common_db_seed.rake:15:in `block (5 levels) in <top (required)>'
tasks/common_db_seed.rake:14:in `each'
tasks/common_db_seed.rake:14:in `block (4 levels) in <top (required)>'
Ruby的新手,无法解决问题。任何帮助表示赞赏!
按照惯例,数据库播种必须在seeds.rb文件中完成