【问题标题】:Error loading the 'mysql2' Active Record adapter加载“mysql2”Active Record 适配器时出错
【发布时间】:2019-02-07 09:10:43
【问题描述】:

我正在尝试升级我的应用,这是我在部署应用时遇到的错误:

加载“mysql2”Active Record 适配器时出错。缺少它所依赖的宝石?无法激活mysql2 (= 0.4.4),已经激活了mysql2-0.3.21。确保将所有依赖项添加到 Gemfile。

这是我的 Gemfile: https://github.com/BI-CTSICN/sparc-request/blob/master/Gemfile

 gem 'mysql2', '~> 0.3.18'
 gem 'rails', '~> 5.1', '>= 5.1.4'

我正在使用 ruby​​ 2.4.2

【问题讨论】:

    标签: mysql ruby-on-rails ruby bundler


    【解决方案1】:

    您使用的mysql2 版本(0.3.21,签入Gemfile.lock)太旧,需要一个比0.4.4 更新的版本。

    通过更改Gemfile 中的版本并运行bundle update mysql2 来升级您的mysql2 gem。当然,在此之前检查版本之间的变化,然后运行测试以检查升级是否没有破坏任何东西。

    【讨论】:

    • 所以我需要将 gem 'mysql2', '~> 0.4.4' 放入我的 gemfile 并运行 bundle update ?
    • 是的。将当前版本替换为0.4.4
    • 0.4.4 已经使用了三年——比 OP 使用的 Rails 版本大一年。只是出于好奇:您为什么不建议使用目前的最新版本 0.5.2?
    • 最初我建议比 0.4.4 更新:required one is newer than 0.4.4. 。一般来说,逐步升级更容易 - 首先升级到第一个工作版本,然后升级到最新版本。
    • @MohammadShahbaz 请考虑支持它比接受更有价值
    【解决方案2】:

    只锁定 mysql2 gem 版本对我不起作用。唯一可行的是将 rails gem 版本与 mysql2 gem 版本相匹配,比较两者的发布日期。

    例如:我现在将我的 rails 版本从 5.1 更新到 5.2,所以我想将 mysql 0.5.3 放在我的应用程序(最新版本)上。但我只能放 0.4.10 版本,因为它的发布日期与我现在安装的 rails 5.2.0.rc2 版本匹配(两者都是从 2018 年 3 月开始,相差一天)。

    我不知道为什么会这样,但我想这是我尝试安装的 rails 和 mysql2 版本之间的不兼容问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2022-11-11
      • 2019-06-28
      • 2020-03-25
      • 1970-01-01
      相关资源
      最近更新 更多