Rails アプリを Heroku (Cedar) にデプロイしています。アセットのプリコンパイルには 3 つのオプションがあり、デプロイ時に Heroku がアセットをプリコンパイルするオプションを選択しました。
プッシュすると、(プリコンパイル中に) データベースにアクセスできないというエラーが発生しました。では、プリコンパイル中にRailsがデータベースに接続しないようにするにはどうすればよいでしょうか? プリコンパイルでデータベースへのアクセスが必要になるシナリオを想像できないため、そもそもなぜ設定されているのかわかりません。
プリコンパイル時にアプリケーションの初期化を無効にするソリューションをどこかで見ました。これは、application.rb に以下を追加することで実現されます (environments/production.rb に設定しても機能しません)。
config.assets.initialize_on_precompile = false
この行を追加してみましたが、うまくいきましたが、それが良い解決策かどうかはわかりません。これにより、アセットに使用する可能性のある一部のプラグインがプリコンパイル中に読み込まれず、最終結果に影響するのではないでしょうか?