构建新的 Rails 应用程序加载“sqlite3”时出错,而没有明显写入版本
Posted
技术标签:
【中文标题】构建新的 Rails 应用程序加载“sqlite3”时出错,而没有明显写入版本【英文标题】:Build new Rails app Error loading the 'sqlite3' without evidently write verion 【发布时间】:2019-07-11 07:07:00 【问题描述】:当生成新的 rails 应用程序并启动服务器“rails s”时,我得到的第一个按摩:
Puma 发现此错误:加载“sqlite3”Active Record 适配器时出错。缺少它所依赖的宝石?无法激活 sqlite3 (~> 1.3.6),已经激活 sqlite3-1.4.0。确保将所有依赖项添加到 Gemfile。 (加载错误)
重新加载页面后:
ActiveRecord::ConnectionNotEstablished 未找到具有“主”的连接池。
def retrieve_connection(spec_name) #:nodoc:
pool = retrieve_connection_pool(spec_name)
raise ConnectionNotEstablished, "No connection pool with '#spec_name' found." unless pool
pool.connection
end
我重新安装了 ruby、rails、bundler,除了 rvm 我不知道该怎么办
附: 当我显然编写 sqlite3 版本时,此错误消失了,但是如果没有它,它应该可以正常工作!!! 救命!怎么办?或者重新安装所有这些?
【问题讨论】:
Brand new rails app, can't generate scaffold的可能重复 【参考方案1】:尝试将其添加到您的 Gemfile 中
gem 'sqlite3', '~> 1.3.6'
而不是只有 SQLite3 没有版本。
它对我有用
【讨论】:
是的,我知道它也对我有用,但是...这不是问题的解决方案,在新应用程序中进行一些更改是愚蠢的,这应该可以在没有任何更改的情况下工作 @Axelrod,但这是一个只有 Rails 团队才能解决的问题。实际上,在 5.2 分支中已经有一个修复它的提交,但 5.2.3 需要在默认情况下可用之前发布。 @ulferts 好的,另一个想法如何重新安装所有?我尝试了,但我感觉可能会留下来......所以它没有帮助如何做到正确? @Axelrod,您目前无法解决将 sqlite3 gem 限制在 1.3 范围内的需要。删除和重新安装在那里无济于事。但一旦指定,调用bundle install
即可解决问题。
@ulferts 不,没有帮助【参考方案2】:
通过在 Gemfile 中添加 sqlite3 版本对我有用。
【讨论】:
【参考方案3】:对我来说,编辑您的 Gemfile:
gem 'sqlite3', '~> 1.3.6'
并运行以下命令:
捆绑安装
【讨论】:
以上是关于构建新的 Rails 应用程序加载“sqlite3”时出错,而没有明显写入版本的主要内容,如果未能解决你的问题,请参考以下文章
Windows / Ruby / Rails安装 - 。无法加载这样的文件--sqlite3 / sqlite3_native windows
Rails 应用程序无法在 AWS Elastic Beanstalk 上运行,sqlite3 错误
将 Rails 应用程序推送到 Heroku 时缺少“sqlite3.h”
将带有 SQLite3 的 Rails 推送到 Heroku 失败 [重复]