環境 cloud9 Rails 5.0.7.2 ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux] macOS Mojage バージョン10.14
前提・実現したいこと
現在、rubyにてポートフォリオの作成に取り組んでいます。
mysql2を本番環境でも動作できるようにして
**Yay! You’re on Rails!**の画面を表示できるようにしたいです。
(開発環境では表示されます。)
コードはgithubのアカウントに記載しております。
githubアカウント
発生している問題・エラーメッセージ
$ heroku rails db:migrate
$ heroku run rails console
上記コマンドを実行時、下記のようなエラーが発生します。
Running rake db:create on ⬢ free-wifi-cafe... up, run.3307 (Free) rake aborted! NoMethodError: Cannot load `Rails.application.database_configuration`: undefined method `[]' for nil:NilClass (erb):7:in `<main>' /app/vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/application/configuration.rb:137:in `database_configuration' /app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railtie.rb:35:in `block (3 levels) in <class:Railtie>' /app/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:74:in `load' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:74:in `kernel_load' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:27:in `run' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:360:in `exec' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:20:in `dispatch' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:10:in `start' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/exe/bundle:30:in `block in <top (required)>' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/exe/bundle:22:in `<top (required)>' /app/bin/bundle:3:in `load' /app/bin/bundle:3:in `<main>' Caused by: NoMethodError: undefined method `[]' for nil:NilClass (erb):7:in `<main>' /app/vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/application/configuration.rb:137:in `database_configuration' /app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railtie.rb:35:in `block (3 levels) in <class:Railtie>' /app/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:74:in `load' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:74:in `kernel_load' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli/exec.rb:27:in `run' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:360:in `exec' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:20:in `dispatch' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/cli.rb:10:in `start' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/exe/bundle:30:in `block in <top (required)>' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors' /app/vendor/bundle/ruby/2.5.0/gems/bundler-1.15.2/exe/bundle:22:in `<top (required)>' /app/bin/bundle:3:in `load' /app/bin/bundle:3:in `<main>' Tasks: TOP => db:create => db:load_config (See full trace by running task with --trace)```
上記のエラー内容で下記の点に着目してみました。
NoMethodError: Cannot load `Rails.application.database_configuration`: undefined method `[]' for nil:NilClass
色々調べてみるとこのエラーはdatabase.yml上で環境変数の設定が適切に施されていないために起こるエラーだと書かれていました。
しかし、どのあたりが正しくないのか把握できておりません。
database.yml
default: &default adapter: mysql2 encoding: utf8 reconnect: false pool: 5 username: <%= Settings.database["user_name"] %> password: <%= Settings.database["password"] %> host: localhost development: <<: *default database: free-wifi-cafe_development test: <<: *default database: free-wifi-cafe_test production: <<: *default database: free-wifi-cafe_production # username: free-wifi-cafe # password: <%= ENV['FREE-WIFI-CAFE_DATABASE_PASSWORD'] %>
環境変数はsetting.local.ymlで作成しました。
setting.local.yml
database: user_name: '設定した名前' password: '設定したパスワード'
database.ymlやsetting.local.ymlは下記のサイトを参考に作成しました。
[Ruby on Rails 4] Rails で MySQL を利用する設定
rails 一度gitHubにあげたID・パスワード等を履歴から消し、環境ごとに管理する
また、mysql2の導入は以下のサイトを参考にしました。
RailsのDBを(初めから| |後から)MySQLに変更する
gemfile
source 'https://rubygems.org' gem 'rails', '~> 5.0.0' gem 'mysql2', '>= 0.3.18', '< 0.5' gem 'dotenv-rails' gem 'puma', '~> 3.0' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.2' # See https://github.com/rails/execjs#readme for more supported runtimes gem "bootstrap", ">= 4.3.1" gem 'jquery-rails' gem 'turbolinks', '~> 5' gem 'jbuilder', '~> 2.5' gem 'config' # gem 'bcrypt', '~> 3.1.7' gem 'config' group :development, :test do gem 'byebug', platform: :mri end group :development do gem 'web-console' gem 'listen', '~> 3.0.5' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end group :production do end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/02 11:49
退会済みユーザー
2019/04/02 11:50
退会済みユーザー
2019/04/02 11:50
2019/04/03 13:28