在最近几天,我将我的OS X更新为Maverics。今天,当我尝试创建这样的新项目时:
rails new abc
有很多问题,但我安装了xcode,现在它的工作。现在我打开这样的rails控制台:
rails console
然后无论我写什么我只看到:
Loading development environment (Rails 4.0.1)
1.9.3p448 :001 > Link
=> Link(no database connection)
有什么问题? Mysql正在运行,数据库存在。当我做rake db:migrate时,一切正常。
答案 0 :(得分:60)
控制台可能确实有数据库连接,但报告它没有。
要查看是否属实,请在控制台中进行查询。
Link.count
这解决了我和同事的误报警告。
答案 1 :(得分:27)
过去,在加载控制台后立即引用ActiveRecord模型将返回其列信息。如果已经通过connection
,first
,all
,count
等方法明确强制连接到数据库,Rails现在只返回此信息。
您可以通过将此行为添加到config/application.rb
console do
ActiveRecord::Base.connection
end
答案 2 :(得分:19)
根据the issues #12804上的rails/rails。
该消息只是告诉您AR尚未连接到数据库,因此不知道列信息。我认为除非我们需要获取数据,否则不希望连接到数据库。
现在,您可以使用Model.connection
建立连接。
答案 3 :(得分:4)
尝试在控制台上使用reload!
,如果没有为关系等创建记录,请确保您在指定模型中有记录。
我在ubuntu上遇到了同样的问题。我在rails控制台中使用了reload!
并在数据库中添加了记录。
答案 4 :(得分:3)
我在使用Rails 4.0.1时遇到了同样的问题。它发生在我正在部署的Linux服务器以及我的Mavericks开发机器上。
服务器正常工作,规范工作,但控制台没有数据库连接。
恢复到Rails 4.0.0修复了控制台的问题。
我还没有发现任何其他提及这个问题。可能有4.0.1和Postgres适配器的更改有问题吗? (你使用的是Postgres吗?)