エンジニアへの転職を目指している、学習歴半年のプログラミング初心者です。
オンラインでの教材とカリキュラムに従い、アプリを作成しながら学習を進めております。
[ 概要 ]
cloud9で作ったrailsのアプリが完成したのですが、herokuにデプロイする段階で詰まっております。
$ heroku run rails db:migrate
を実行すると、
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).
というエラーが吐き出されます。
同じようなエラーを経験した方、もしくは原因や解決策をご存知の方はいらっしゃいませんか?
[ 手順 ]
私の行った手順は以下です。
(1) 完成したアプリを”$ git commit”, “$ git push”
(2) ターミナルでherokuにログインし、”$ heroku keys:add”および“$ heroku create”
(3) “$ git push heroku master”を完了
(4) “$ heroku run rails db:migrate”を実行
すると、以下のような結果になりました。
エラー文の意味は理解しているつもりです。
ec2-user:~/environment/attendance_b (master) $ heroku run rails db:seed Running rails db:seed on ⬢ afternoon-island-87453... up, run.8412 (Free) W, [2020-03-15T09:49:56.497669 #4] WARN -- : DEPRECATION WARNING: set the 'will_paginate.previous_label' key in your i18n locale instead of editing pagination_options (called from /app/config/environment.rb:7:in `<top (required)>') W, [2020-03-15T09:49:56.497832 #4] WARN -- : DEPRECATION WARNING: set the 'will_paginate.next_label' key in your i18n locale instead of editing pagination_options (called from /app/config/environment.rb:8:in `<top (required)>') rails 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). /app/vendor/bundle/ruby/2.6.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/connection_specification.rb:188:in `rescue in spec' /app/vendor/bundle/ruby/2.6.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/connection_specification.rb:185:in `spec' /app/vendor/bundle/ 中略 Caused by: Gem::LoadError: sqlite3 is not part of the bundle. Add it to your Gemfile. /app/vendor/bundle/ruby/2.6.0/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:408:in `block (2 levels) in replace_gem' /app/vendor/bundle/ruby/2.6.0/gems/activerecord-5.1.7/lib/active_record/connection_adapters/sqlite3_adapter.rb:10:in `<top (required)>' 後略
[ 期待していた結果 ]
マイグレーションを済ませ、続けて”$ heroku run rails db:seed”を実行することにより、デプロイを完了させられるものと期待しておりました。
なぜなら、教材の指示に従い、以前にも同じ手順でアプリを公開したことがあるからです。
[ 推測される原因 ]
エラー文中腹のこの部分。
Caused by: Gem::LoadError: sqlite3 is not part of the bundle. Add it to your Gemfile.
・Gemfileには既にbundleしているのだが、なぜ反映してくれないのかがわからない
・herokuがsqlite3をサポートしていない可能性
・sqlite3のバージョン’1.4’以降は、ActiveRecordに対応していない
・config/database.ymlの記述が誤っている?
・Gemlife.lockに何かがあるのでは?
###[ 試したこと ]
上記の推測に基づき、以下を試しましたが、解決には至らず。
(a) Gemfile内のsqlite3のバージョンを変更してみた
前略 group :development, :test do gem 'sqlite3', '1.3.13' # バージョンを’1.3.6’, ‘1.4.2’, 無表記にし、それぞれbundleしたが、ダメ。 gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] end group :development do gem 'web-console', '>= 3.3.0' gem 'listen', '>= 3.0.5', '< 3.2' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end group :production do gem 'pg', '0.20.0' end → 同様のエラー
(b) database.ymlを書き換えてみた
# SQLite version 3.x # gem install sqlite3 # # Ensure the SQLite 3 gem is defined in your Gemfile # gem 'sqlite3' # default: &default adapter: sqlite3 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> timeout: 5000 development: <<: *default database: db/development.sqlite3 # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: db/test.sqlite3 production: <<: *default database: db/production.sqlite3
↓
production: <<: *default database: db/production.pg → 同様のエラー
production: <<: *default adapter: postgresql encoding: unicode pool: 5 → エラー “PG::ConnectionBad: could not connect to server: No such file or directory”
(c) 以前にデプロイできた別アプリのGemfile.lockと見比べる
GEM remote: https://rubygems.org/ specs: actioncable (5.1.7) actionpack (= 5.1.7) nio4r (~> 2.0) websocket-driver (~> 0.6.1) actionmailer (5.1.7) actionpack (= 5.1.7) actionview (= 5.1.7) activejob (= 5.1.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) actionpack (5.1.7) actionview (= 5.1.7) activesupport (= 5.1.7) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) actionview (5.1.7) activesupport (= 5.1.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) activejob (5.1.7) activesupport (= 5.1.7) globalid (>= 0.3.6) activemodel (5.1.7) activesupport (= 5.1.7) activerecord (5.1.7) activemodel (= 5.1.7) activesupport (= 5.1.7) arel (~> 8.0) activesupport (5.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) arel (8.0.0) autoprefixer-rails (9.7.4) execjs bcrypt (3.1.13) bindex (0.8.1) bootstrap-sass (3.4.1) autoprefixer-rails (>= 5.2.1) sassc (>= 2.0.0) bootstrap-will_paginate (1.0.0) will_paginate builder (3.2.4) byebug (11.1.1) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.12.2) concurrent-ruby (1.1.6) crass (1.0.6) erubi (1.9.0) execjs (2.7.0) faker (2.10.2) i18n (>= 1.6, < 2) ffi (1.12.2) globalid (0.4.2) activesupport (>= 4.2.0) i18n (1.8.2) concurrent-ruby (~> 1.0) jbuilder (2.10.0) activesupport (>= 5.0.0) jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) method_source (0.9.2) mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.14.0) nio4r (2.5.2) nokogiri (1.10.9) mini_portile2 (~> 2.4.0) pg (0.20.0) puma (3.12.4) rack (2.2.2) rack-test (1.1.0) rack (>= 1.0, < 3) rails (5.1.7) actioncable (= 5.1.7) actionmailer (= 5.1.7) actionpack (= 5.1.7) actionview (= 5.1.7) activejob (= 5.1.7) activemodel (= 5.1.7) activerecord (= 5.1.7) activesupport (= 5.1.7) bundler (>= 1.3.0) railties (= 5.1.7) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) railties (5.1.7) actionpack (= 5.1.7) activesupport (= 5.1.7) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (13.0.1) rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) rounding (1.0.1) ruby_dep (1.5.0) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) sass-rails (5.0.7) railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) sassc (2.2.1) ffi (~> 1.9) spring (2.1.0) spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.1) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.3.13) thor (1.0.1) thread_safe (0.3.6) tilt (2.0.10) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) tzinfo (1.2.6) thread_safe (~> 0.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) web-console (3.7.0) actionview (>= 5.0) activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) will_paginate (3.3.0) PLATFORMS ruby DEPENDENCIES bcrypt bootstrap-sass bootstrap-will_paginate byebug coffee-rails (~> 4.2) faker jbuilder (~> 2.5) jquery-rails listen (>= 3.0.5, < 3.2) pg (= 0.20.0) puma (~> 3.7) rails (~> 5.1.6) rails-i18n rounding sass-rails (~> 5.0) spring spring-watcher-listen (~> 2.0.0) sqlite3 (= 1.3.13) turbolinks (~> 5) tzinfo-data uglifier (>= 1.3.0) web-console (>= 3.3.0) will_paginate RUBY VERSION ruby 2.6.3p62 BUNDLED WITH 1.17.3 → Diffcheckerを使い見比べたが、(おそらく)異常無し
(d) 以前herokuにデプロイしたアプリのソースコードと、とにかく見比べる
↓
DB周りを中心に見比べたが、進展無し
###[ 環境 ]
・マシン:MacBook Air
・言語とフレームワーク:Ruby, Ruby on Rails
・開発環境:AWS Cloud9
・開発DB:sqlite3
・本番DB:postgresql
###[ その他 ]
Googleでエラー文の他に、[ heroku, デプロイ, gem, pg, sqlite3, add, loaderror, ]などのワードで検索しましたが、解決に至るような記事や情報は見つかりませんでした。
私にとっては「万策尽きた」という具合なのですが、以前できたことができなくなっただけなので、実際には単純な原因だと想像しております。
皆さまのお知恵をお貸しいただければ幸いです。
よろしくお願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 12:06
2020/03/16 13:04
2020/03/16 14:27
2020/03/16 23:42
2020/03/17 02:27
2020/03/18 13:26