Rails5.2.3から6.0.2へのアップグレード後に起動できない

投稿者: Anonymous

ActionTextを使用するために、Rails5.2.3から6.0.2にアップグレードしたところ、
起動しなくなってしまいました。

rails sを実行すると下記のエラーのため、
webpackerがインストールされていないのが原因かと思っておりますが

◾️rails sでのエラー内容

/Users/〜/projects/blog/vendor/bundle/ruby/2.5.0/bundler/gems/webpacker-8e8e7454e302/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /Users/〜/projects/eng_blog/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /Users/〜/projects/blog/config/webpacker.yml (RuntimeError)

webpackerをインストールしようとしてもエラーがでます。
◾️rails webpacker:installでのエラー内容

rails aborted!
ActiveRecord::DatabaseConfigurations::InvalidConfigurationError: '{ default =>  }' is not a valid configuration. Expected '' to be a URL string or a Hash.

bundle updateで各gemを最新版にすることは実施してみました。

DBの接続がうまくできていないのだと思うのですが、検索しても同様のエラーが
あまり見つからず、確認したらよい部分などでも、ご教授頂けますとありがたいです。

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

development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

# 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:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock
  # <<: *default
  # database: db/test.sqlite3

production:
  <<: *default
  # database: db/production.sqlite3

よろしくお願いします。

解決

Railsのアップグレードは比較的難しい作業です。日本語版のドキュメントなどを見ながら必要なステップを一つずつこなしていくことになります。6.0へのアップグレードについては特にこちらを参照してください。

アップグレードを支援するスクリプトとしてrails app:updateというものがあります。こちらを利用するとステップバイステップでアップグレードを行うことができるため、必要そうであればぜひ利用してみてください。

その上で、データベースに関するエラーですが、このコミットで導入されたエラーのようです。見たところconfig/database.ymlが正しくないために発生しているようです。質問にconfig/database.ymlを含めていただくことは可能でしょうか。


database.ymlにあるdefault: &defaultの行をコメントアウトしてみてください。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *