LoginSignup
6
2

More than 5 years have passed since last update.

macOS + Rails5 + sqlite3環境でのrails consoleでActiveRecord利用時エラー

Last updated at Posted at 2017-03-04

rails consoleでActiveRecord利用すると以下のようなエラーが見られました。

irb(main):001:0> User.first
/Users/katsuya/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:27: [BUG] Segmentation fault at 0x00000000000110
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0065 p:---- s:0284 e:000283 CFUNC  :initialize

・・・

環境

macOS Sierra 10.12.3
Rails 5.0.0.1
sqlite 3.14.0

gem
gem 'sqlite3', '1.3.11'

解決方法1

gem 'sqlite3', '1.3.11'

gem 'sqlite3', '1.3.13'
(1.3.13以上)にしましょう。

解決方法2

どうしてもgem 'sqlite3', '1.3.11'のまま利用したい場合はこちらの方法を利用してください。

bundle config build.sqlite3 --with-sqlite3-dir=$(brew --prefix sqlite3)を実行
bundle installをやり直します。

bundle config build.sqlite3について

bundle config build.sqlite3 --with-sqlite3-dir=$(brew --prefix sqlite3)
を実行すると

~/.bundle/config
BUNDLE_BUILD__SQLITE3: "--with-sqlite3-dir=/usr/local/Cellar/sqlite/3.17.0"
の行が追加されます。よって、もとに戻したい場合は、追加された行を削除すれば元に戻ります。

また、
bundle config build.sqlite3 --with-sqlite3-dir=$(brew --prefix sqlite3)
を実行せずに上記の行をアプリケーションのディレクトリの.bundle/congigに追加することで、アプリケーションでのbundleでだけ設定が反映させることも可能です。

参考

https://github.com/sparklemotion/sqlite3-ruby/issues/195
http://qiita.com/hmuronaka/items/88fb04e347a59d509e10
http://qiita.com/emahiro/items/ec3a875dbc671651d4c4
http://ruby.studio-kingdom.com/bundler/bundle_config/

6
2
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
6
2