Rails:ActiveRecord :: Base没有连接池

问题描述 投票:15回答:9

我正在尝试使用Rails 4.2.6开发应用程序。我正在尝试将postgres用于数据库。服务器启动正常,但是当我尝试加载页面时,它将引发此“ ActiveRecord :: Base没有连接池”错误。

可能是什么?

编辑

pg宝石无法正常工作。在启动服务器之前,我必须先对其进行评论,然后再从我的GemFile中将其取消注释。我意识到我使用的是Ruby 2.3而不是Ruby 2.0(按预期)。我删除了ruby 2.3,并在ruby 2.0环境下设置了所有内容。现在可以正常使用。

我在某个地方读到,在较新的Rails版本中'pg'gem存在一些问题,要求人们使用'gem install pg --pre'代替安装gem。我尝试了一下,但是随后我的应用程序在我的GemFile中要求使用'pg'宝石,而且,上述问题再次出现。

这是我的database.yml文件的结尾方式:

  default: &default
     adapter: postgresql
     encoding: unicode
     host: localhost
     username: -------
     password: -------
     pool: 5

  development:
     <<: *default
     database: myDbName
ruby-on-rails postgresql activerecord
9个回答
30
投票

如果您在rake任务中遇到此错误,则可能是在执行任务之前没有运行:environment任务。

更改:

task :task_name do
end

至:

task task_name: :environment do
end

应解决此问题。


9
投票

当服务器找不到从中提取数据所依赖的相应数据库时,会出现此问题。

从一开始我就遇到了同样的问题,我更新了Sqlite3的版本,它高于当前Puma Server版本支持的版本。

我只需要卸载Sqlite3版本,然后安装当前版本的Puma Server支持的版本。

gem uninstall sqlite3

这将卸载Sqlite3的更新版本,然后运行下面的代码,说明当前服务器支持的版本。

gem install sqlite3

或者您也可以打开您的Gemfile,然后包括您正在使用的数据库的版本

gem 'sqlite3', '~> 1.3.6' 

N / B:

sqlite3版本是撰写此答案时的最新版本

然后运行

bundle update

以安装您指定的数据库的版本。

就这些。

希望对您有所帮助。


3
投票

如果所有设置都OK,请检查database.yml。如果是第一次并且您尚未创建数据库,请使用此命令来创建数据库


3
投票

对于PostgreSQL,您的database.yml文件应如下所示:


0
投票

在创建数据库之前尝试访问模型时遇到了相同的问题。


0
投票

我只需要重新启动服务器,警告就会消失。


0
投票

当您在数据库中运行rails db:migrate时,将根据您的迁移文件创建行。您可以查看架构以获取更多信息。


0
投票

就我而言,config/database.yml正在从环境中获取变量:


-1
投票

Rails 5

© www.soinside.com 2019 - 2024. All rights reserved.