我正在尝试使用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
如果您在rake任务中遇到此错误,则可能是在执行任务之前没有运行:environment
任务。
更改:
task :task_name do
end
至:
task task_name: :environment do
end
应解决此问题。
当服务器找不到从中提取数据所依赖的相应数据库时,会出现此问题。
从一开始我就遇到了同样的问题,我更新了Sqlite3的版本,它高于当前Puma Server版本支持的版本。
我只需要卸载Sqlite3版本,然后安装当前版本的Puma Server支持的版本。
gem uninstall sqlite3
这将卸载Sqlite3的更新版本,然后运行下面的代码,说明当前服务器支持的版本。
gem install sqlite3
或者您也可以打开您的Gemfile,然后包括您正在使用的数据库的版本
sqlite3版本是撰写此答案时的最新版本gem 'sqlite3', '~> 1.3.6'
N / B:
然后运行
bundle update
以安装您指定的数据库的版本。
就这些。
希望对您有所帮助。
如果所有设置都OK,请检查database.yml
。如果是第一次并且您尚未创建数据库,请使用此命令来创建数据库
对于PostgreSQL,您的database.yml
文件应如下所示:
在创建数据库之前尝试访问模型时遇到了相同的问题。
我只需要重新启动服务器,警告就会消失。
当您在数据库中运行rails db:migrate
时,将根据您的迁移文件创建行。您可以查看架构以获取更多信息。
就我而言,config/database.yml
正在从环境中获取变量:
Rails 5