Rails控制台无法连接到数据库

时间:2013-11-03 16:45:22

标签: ruby-on-rails macos

在最近几天,我将我的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时,一切正常。

5 个答案:

答案 0 :(得分:60)

控制台可能确实有数据库连接,但报告它没有。

要查看是否属实,请在控制台中进行查询。

Link.count

这解决了我和同事的误报警告。

答案 1 :(得分:27)

过去,在加载控制台后立即引用ActiveRecord模型将返回其列信息。如果已经通过connectionfirstallcount等方法明确强制连接到数据库,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吗?)