私はHerokuのCedarスタックにRails 3.1アプリケーションを導入しています。 Heroku Cedar and Rails 3.1を使用すると、資産をローカルでコンパイルすることができ、Herokuが(「スラッグコンパイル」中に)プッシュするときにそれらをコンパイルしたり、アプリケーションの実行中にジャストインタイムでコンパイルすることができます。私は中間のオプションを実行し、Herokuに資産をプリコンパイルさせたいと思います。Herokuのアセットをプリコンパイルするときにデータベース全体をスキップする方法
Herokuがassets:precompileタスクを実行するときに、アプリケーションがデータベースに接続しようとしているのに、スラッグコンパイルのその段階でデータベースが利用できないため、エラーは"could not connect to server"となります。現時点では、データベース接続の不足が予想され、避けられません。データベースの接続がアセットのプリコンパイルには重要ではないため、過去に移動する方法を探しています。
データベースに接続しようとしているアプリケーションの一部がDeviseです。 routes.rbには、ユーザモデルを見たいと考えているdevise_for :users
という行があります。
私は、devise_forをスタブし、それを資産の前提条件にするレイクタスクを書くことができます:プリコンパイル。私はそれが私の問題を解決するだろうと思うが、私はには、この問題がHeroku上で使用できるより普遍的なソリューションを探しています。
そこには何かがありますか、ルートとアセットのパスを生成するのに十分なほどアプリを実行している間にデータベース接続エラーを消すものは何ですか?
起動時にデータを読み書きする必要がある場合は、スタブすることはできませんが、自動的にすべてのActiveRecordモデルを偽装できますか?
すごいです!私にこれを警告してくれてありがとう。 Herokuのチケットに、この環境変数を設定しておく必要があることを追加しました。 – jasongarber
申し訳ありませんが、私はこの修正がDevise and Railsから実際に取り戻されたと考えています。ホセ・ヴァリムは問題を回避しようとするために少しでも華麗なフットワークをしましたが、彼はそれがあまりにもこの時点でDevise HEADとRails 3-1の安定したブランチでまだ壊れている場合、私はあなたの開発モデルの作業と、どの特定のメソッドが問題を引き起こしているかを特定しようとすること以外は何もしないと思います。 –
更新いただきありがとうございます。 Herokuは、彼らが別の角度から問題に取り組んでいると私に言った。私たちはそれが揺れるのを待たなければならないと思う。自分の状況を回避する方法があります。 – jasongarber