27

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

4

5 回答 5

60

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

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

Link.count

这为我和一位同事解决了误报警告。

于 2013-11-04T18:54:02.790 回答
28

过去,在加载控制台后立即引用 ActiveRecord 模型将返回其列信息。connectionRails 现在仅在通过, first, all,count等方法显式强制连接到数据库时才返回此信息。

您可以通过将其添加到您的config/application.rb

console do
  ActiveRecord::Base.connection
end
于 2013-12-09T15:45:48.883 回答
19

According to the issues #12804 on rails/rails.

The message just tells you that AR has not yet connected to the database and therefore does not know the column information. I think it's desired not to connect to the database unless we need to fetch data.

For now you could use Model.connection to establish a connection.

于 2013-11-10T07:45:37.107 回答
4

如果没有为关系等创建记录,请尝试reload!在控制台上使用并确保您在指定模型中有记录。

我在ubuntu上遇到了同样的问题。我reload!在rails控制台中使用并在数据库中添加了记录。

于 2013-11-04T15:39:09.863 回答
3

我对 Rails 4.0.1 有同样的问题。它发生在我正在部署的 Linux 服务器以及我的 Mavericks 开发机器上。

服务器工作,规范工作,但控制台没有数据库连接。

恢复到 Rails 4.0.0 解决了控制台的问题。

我还没有发现任何其他提到这个问题。4.0.1 和 Postgres 适配器的更改可能存在问题,也许?(你在使用 Postgres 吗?)

于 2013-11-04T02:25:42.703 回答