【发布时间】:2009-08-27 20:07:31
【问题描述】:
我有一个在托管服务器上开发的 Ruby on Rails 项目,但我决定在我的本地 Windows 机器上工作。
首先,我想我会确保我可以从旧项目中获取我的模型并将它们放入一个新项目中,然后在控制台中查询它们。这失败了。
编辑以反映更准确的问题: rails 为查询我的模型而建立的连接只能运行一个查询,然后为所有后续查询提供“未连接”异常。有人知道发生了什么吗?我检查了我的配置,很多。如果 mysql 服务器上有一些我不知道的设置,我愿意看看。
堆栈跟踪:
Price.find(1)
ActiveRecord::StatementInvalid: Mysql::Error: query: not connected: SHOW FIELDS FROM `prices`
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:212:in `log'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:320:in `execute'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:466:in `columns'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1271:in `columns'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1279:in `columns_hash'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1578:in `find_one'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1569:in `find_from_ids'
from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:616:in `find'
from (irb):2
我已验证我的 MySQL 数据库正在接受连接并且具有我期望的数据和结构。我已经仔细检查了我的连接等。有人能解释一下吗?
【问题讨论】:
-
您是在生产、开发还是测试中运行?如果你改变它会发生什么?
-
可以连接,查询失败>> require "mysql" => [] >> testconn = Mysql.real_connect("localhost", "lco_admin", "****", "lastcall_dev") => #<0x348d728>0x348d728>
标签: mysql ruby-on-rails activerecord