本サイトではアフィリエイト広告を利用しています

Ruby on Railsで作成したアプリをHerokuにデプロイするまでにでたエラー

目次

初めに

Railsを使ってWebアプリの開発を進めていましたが、Herokuにデプロイする際につまづいた箇所が何箇所かあったので、備忘録としてこちらにまとめておきます。

デプロイの流れはこちらのページを参考に進めました。

Qiita
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】 - Qiita herokuを使ったRailsアプリのデプロイRailsといえば「爆速でアプリが作れる」だと思いますが、そうやって作ったアプリもやっぱり「爆速でデプロイしたい」ですよね。そんな...

つまづき① デプロイ時に必要なパッケージがない問題

内容

エラー文はこちらでした。

Precompiling assets failed / Error: Cannot find package '@babel/plugin-proposal-private-property-in-object'

@babel/plugin-proposal-private-property-in-objectというパッケージがないようです。

package.jsonには記載がなければ新たにインストールするだけなのですが、しっかりとインストールされているようだったので困りました。

解決策

解決のためにはbabel.config.jsを修正する必要がありました。

babel.config.jsには以下のように利用しているプラグインを記載している箇所があります。

      [
        '@babel/plugin-proposal-private-methods',
        {
          loose: true
        }
      ],
      [
        '@babel/plugin-proposal-private-property-in-object',
        {
          loose: true
        }
      ],

このproposalの部分をtransformに変更する必要がありました。

      [
        // proposalをtransformに変更
        '@babel/plugin-transform-private-methods',
        {
          loose: true
        }
      ],
      [
        // proposalをtransformに変更
        '@babel/plugin-transform-private-property-in-object',
        {
          loose: true
        }
      ],

babel.config.jsを変更して再度デプロイを行ったところ無事通りました。

こちらの記事を参考にさせていただきました。ありがとうございます。
https://mrradiology.hatenablog.jp/entry/2023/09/29/122815

つまづき② データベースがない問題

内容

無事デプロイが完了したのですが、URLを開くとこんな表示でした。

We’re sorry, but something went wrong.
If you are the application owner check the logs for more information.`

ログを確認するとどうやらデータベースがないから接続ができないよとのこと。

ActiveRecord::ConnectionNotEstablished: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" 
failed: No such file or directory (ActiveRecord::ConnectionNotEstablished)

解決策

HerokuのResourcesからデータベースのアドオンを追加する必要がありました。
画像のFind more add-onsからHeroku Postgresを検索し、追加します。

スクリーンショット 2024-04-19 9.39.09.png

データベースへのリンクがHerokuの環境変数に自動的に発行されるので、urlをdatabase.ymlに追加しましょう。

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5
  # この行を追加
  url: <%= ENV['DATABASE_URL'] %>

その後、マイグレーションもお忘れなく。

heroku run rails db:migrate

再度デプロイすると無事、アプリが起動しました。

デプロイしてみると意外と手こずるものですね…
日々精進したいと思います。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次