没有ActiveRecord :: Base的连接池

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

会是什么呢?

编辑

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

我曾经读过某个地方,在较新的Rails版本中有’pg’gem存在一些问题,要求人们使用’gem install pg –pre’代替安装gem。 我试过了,但后来我的应用程序在我的GemFile中需要’pg’gem,而且,上面提到的问题再次出现了。

这是我的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 

应该解决这个问题。

对于PostgreSQL,您的database.yml文件看起来应该是这样的:

 default: &default adapter: postgresql encoding: unicode # For details on connection pooling, see rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: 5 development: <<: *default database: your_db_name 

还要确保安装了gem:在你的Gemfile中:

 gem 'pg' 

最后,重启服务器。

希望有所帮助

编辑:我差点忘了,确保你的PostgresSQL正在运行,检查这个链接进行下载和设置。

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

 rake db:create 

如果数据库已存在,请尝试重置数据库迁移,

 rake db:migrate:reset 

希望它能解决问题。 转到rails控制台并尝试检查其是否正常工作。

当我在创建DataBase之前尝试访问Model时遇到了同样的问题。

确保至少运行一次rake db:migrate

如果您已经运行了迁移,请按照之前的答案中的说明检查数据库。

Rails 5

新的应用程序

使用Postgresql进行测试和开发

规范运行,因此Rails可以连接到Postgresql

但是当我启动网络应用程序时,我得到了“找不到ID主要连接池”。

跑’bin / rails db:migrate:reset’并重新启动应用程序。 有效。 不知道为什么。

database.yml的:

  development: adapter: postgresql encoding: unicode database: rails5_development pool: 5 username: foo password: bar host: localhost port: 5432 test: adapter: postgresql encoding: unicode database: rails5_test pool: 5 username: foo password: bar host: localhost port: 5432 

我不得不简单地重启服务器以使警告消失。