LoginSignup
2
1

More than 3 years have passed since last update.

searchkick gemのマイナーバージョンアップデート時のelasticsearch gemのメジャーバージョンのズレ発生について

Last updated at Posted at 2019-06-03

Elasticsearchを利用するために、searchkickというElasticsearchを簡単に扱えるようにしたgemを介して利用されている方も多いと思う。

searchkickのマイナーバージョンアップデート(「X.X.X」の3桁目のみをバージョンアップ)を実施した際、
その依存gemであるelasticsearch用gemのメジャーバージョンとElasticsearch本体のバージョンがズレるという現象が発生した。

Elasticsearch本体のバージョン
 6.2.4
searchkickマイナーバージョンアップデート後のelasticsearch用gemのバージョン
 elasticsearch (7.1.0)
 elasticsearch-api (= 7.1.0)
 elasticsearch-transport (= 7.1.0)

原因は、searchkick依存gemであるelasticsearch用gemのバージョン指定が、5系以上という指定になっていた事だ。

明確には以下の通り。

searchkickの依存gemを表示するコマンド
gem dependency searchkick
実行結果
Gem searchkick-3.1.3
  activemodel (>= 4.2)
  bundler (>= 0, development)
  elasticsearch (>= 5)
  hashie (>= 0)
  minitest (>= 0, development)
  rake (>= 0, development)

実行結果に、elasticsearch (>= 5)とある通り、依存gemであるelasticsearch用gemは、
bundle updateすると、強制的に5系以上のバージョンにアップデートされるような設定になっている。

Elasticsearch本体が6系なのにelasticsearch用gemが7系のバージョンという風にズレるのは宜しくない。
※elasticsearch本体とgemの互換性について

対策は以外とシンプルだが、Gemfileに対して依存gemであるelasticsearch用gemの記述をバージョン固定形式で明記し、bundle updateするだけで良かった。

Gemfileに新規追加した記述
gem 'elasticsearch', '~>6.1.0'

利用しているgemのみバージョン固定すれば大丈夫だと油断していたが、利用しようとしているgemの依存gemのバージョンにも気を配らないといけない事を、今回の一件で学んだ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1