没有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
我不得不简单地重启服务器以使警告消失。