【发布时间】:2020-06-18 06:37:12
【问题描述】:
我正在尝试开始使用 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 新手,无法找出问题所在。任何帮助表示赞赏!
【问题讨论】:
-
缺少实际的错误消息。请在 te CLI 中发布命令和整个错误输出。
-
有一些组织限制,因此我无法发布:( 但是,我得到的错误是在我发布的堆栈跟踪的第一个跟踪错误语句中。你是什么'正在寻找究竟?
标签: ruby-on-rails ruby activerecord rake