質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2899閲覧

[Ruby on Rails]rake db:migrateでLoadError: cannot load such file -- sqlite3/sqlite3_native

Usama_bin_Ladin

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/04/30 09:13

編集2020/04/30 10:43

前提・実現したいこと

Ruby on RailsでWEBアプリ開発をすべく、
下記書籍に従ってアプリを作成しています。

 Ruby on Rails 4 アプリケーション プログラミング(山田 祥寛)

コマンド「rake db:migrate」を実行した際にエラーが発生しました。
解決策をご教授お願いします。

発生している問題・エラーメッセージ

rake aborted! LoadError: cannot load such file -- sqlite3/sqlite3_native c:/data/railbook2/config/application.rb:7:in `<top (required)>' c:/data/railbook2/Rakefile:4:in `require_relative' c:/data/railbook2/Rakefile:4:in `<top (required)>' Caused by: LoadError: cannot load such file -- sqlite3/2.6/sqlite3_native c:/data/railbook2/config/application.rb:7:in `<top (required)>' c:/data/railbook2/Rakefile:4:in `require_relative' c:/data/railbook2/Rakefile:4:in `<top (required)>' (See full trace by running task with --trace)

試したこと

①下記回答者、ベストアンサーの対応
https://teratail.com/questions/130646
https://teratail.com/questions/65641
https://teratail.com/questions/44920

②C:\Ruby26-x64\bin に http://www.sqlite.org/download.html からダウンロードしたsqlite3.dll と sqlite3.exeを入れた。

sqlite-dll-win64-x64-3310100
┗sqlite3.dll

sqlite-tools-win32-x86-3310100
┗sqlite3.exe

補足情報(FW/ツールのバージョンなど)

[OS]
Windows10 (64bit)
[Rails]
5.0.2
[ruby]
2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32]
[SQLite]
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6

確認事項

下記「Ⓑ」のパスにのみ「sqlite3_native.so」が存在するのですが、
「Ⓐ」のパスが参照されてしまっている。とかは考えられますか?

C:\Ruby26-x64\lib\ruby\gems\2.6.0\gems
Ⓐ ┣sqlite3-1.3.13-x64-mingw32\lib\sqlite3
Ⓑ ┗sqlite3-1.4.2\lib\sqlite3\

~追記~
Ⓑの「sqlite3_native.so」を下記フォルダにそれぞれ配置したところ、エラーメッセージが変化しました。
C:\Ruby26-x64\lib\ruby\gems\2.6.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3
C:\Ruby26-x64\lib\ruby\gems\2.6.0\gems\sqlite3-1.3.13-x64-mingw32\lib\sqlite3\2.6\

rake aborted! ArgumentError: wrong number of arguments (given 2, expected 0) Tasks: TOP => db:migrate (See full trace by running task with --trace)

~追記2~
「bundle update」
「gem cleanup」
を実行したことでまたエラーメッセージが変化しました。

rake aborted! Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). Caused by: Gem::LoadError: can't activate sqlite3 (~> 1.3.6), already activated sqlite3-1.4.2. Make sure all dependencies are added to Gemfile. Tasks: TOP => db:migrate => db:load_config (See full trace by running task with --trace)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

「sqlite3_adapter.rb」を以下のように修正することで解決しました。

<修正ファイル>
C:\Ruby26-x64\lib\ruby\gems\2.6.0\gems\activerecord-5.0.7.2\lib\active_record\connection_adapters
・sqlite3_adapter.rb

<修正方法>
gem 'sqlite3', '> 1.3.6'
⇒gem 'sqlite3', '
> 1.4.2'

投稿2020/04/30 11:03

Usama_bin_Ladin

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問