构建新的 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 失败 [重复]

安装sqlite3时发生将rails应用程序推送到Heroku错误,并且Bundler无法继续[重复]

Rails 3 SQLite3 布尔值 false