2011-08-07 9 views
5

私はこの動作に遭遇し、他の誰かがそれを見たのか不思議でした。私は回避策を持っているので、ショーストッパーではありません。Heroku RACK_ENVはシンフォニーの "開発"を言っていますが、ユニコーンの "ステージング"

私はHerokuでCedarスタックを使用して新しいアプリを作成しました。複数の環境を証明するとき、私は、次の設定VARを追加しました:

heroku config:add RACK_ENV=staging --app appname

私は視覚的に環境VARが設定された、その後、私の簡単なシナトラの例では、次のルートを置いていることを確認:

get '/?' do 
    ENV['RACK_ENV'] 
end 

ときI私のラップトップでローカルにテストしたところ、developmentが届きました。

私がHerokuにプッシュしてherokuapp.comで同じルートを押したとき、私はstagingの代わりにdevelopmentを得ました。

私はProcfileを使ってWebサーバーをThinからUnicornに切り替え、変更をHerokuに戻しました。

私がルートをヒットしたとき、私は予想通りにstagingを得ました。

他にもこれを見ましたか?私がThinを実行していた別のプロジェクトでの私の回避策は、New Relicのアプリ名から環境を取り除くことでした。 (私は新しい遺物が必要で、現在はCedarとNew RelicとUnicornが協力しているので、Unicornに切り替えませんでした)。

答えて

14

私はsinatraと同じ問題を抱えていました。herokuの例sinatra appを使用して、シダースタックで同じ問題が発生しました。 RACK_ENVは開発以外のものに設定することを拒否します。 (HerokuはRACK_ENVが設定されていると思っているようですが、「heroku config」を実行すると設定した環境が表示されますが、アプリでは常に開発されています)。

竹のスタックの同じアプリは問題ありませんでした。

編集:私はこれについてHerokuのにチケットを提出し、私のためにバグを修正し、本当に迅速な応答を得た:

QUOTE: 小さなバグがありますようにあなたが使用している場合、それは私たちのデフォルトProcfileに見えます薄いです。 Procfileを次のように作成できますか?あなたはまた、Herokuの宝石を使用してステージングにごRACK_ENVとRAILS_ENVの両方を設定することができ

web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT

+0

これは私のためにそれを修正しました - 歓声! –

+0

男 - 本当にうれしいです。これは私の新しい遺物の統合を修正した – Jonathan

+0

ありがとう!しかしこれは今までには修正されていないと信じられないほどです。 – Felixyz

4

期待通り...それは動作します。私はそれがHerokuの問題かもしれないと思う。

関連する問題