2017-09-05 28 views
6

के लिए हेरोकू में MIX_ENV सेट करना मैंने सफलतापूर्वक दो हेरोकू ऐप्स को तुरंत चालू किया है: my-app-prod और my-app-test। हेरोकू ऐप सेटिंग्स में कॉन्फ़िगर किए गए विशिष्ट वातावरण चर हैं। मैं फीनिक्स में मानक विन्यास फाइलों का उपयोग कर रहा हूँ: config.exs, test.exs, prod.exs, dev.exs।फीनिक्स फ्रेमवर्क

ऐप वैरिएबल MIX_ENV = परीक्षण के साथ हेरोकू में मेरा-ऐप-परीक्षण कॉन्फ़िगर करने के बाद, यह अभी भी prod.exs से चर लोड कर रहा है।

क्या कोई अतिरिक्त कदम है जो मुझे याद आ रहा है ताकि मेरा ऐप test.exs का उपयोग कर सके?

मैं सभी निर्देशों का पालन किया यहाँ: https://hexdocs.pm/phoenix/heroku.html

जब मैं Git धक्का चलाने के लिए, मैं इसे निम्नलिखित उत्पादन के आधार पर prod.exs उपयोग कर रहा है सत्यापित कर सकते हैं।

remote: Generated my_phoenix_app_name app 
 
remote: -----> Creating .profile.d with env vars 
 
remote: -----> Writing export for multi-buildpack support 
 
remote: -----> Executing post compile: pwd 
 
remote: /tmp/build_f5b9e6e5890fcb58b9689f433c554c6a 
 
remote: -----> Phoenix app detected 
 
remote: 
 
remote: -----> Loading configuration and environment 
 
remote:  Loading config... 
 
remote:  Detecting assets directory 
 
remote:  * package.json found in custom directory 
 
remote:  Will use phoenix configuration: 
 
remote:  * assets path . 
 
remote:  * mix tasks namespace phoenix 
 
remote:  Will use the following versions: 
 
remote:  * Node 5.3.0 
 
remote:  Will export the following config vars: 
 
remote: CLIENT_ID 
 
remote: DATABASE_URL 
 
remote: POOL_SIZE 
 
remote: SECRET_KEY_BASE 
 
remote: SHOPIFY_SECRET 
 
remote:  * MIX_ENV=prod

+0

ऐसा लगता है जैसे यह संकलन समय पर चर संग्रहित कर रहा है। क्या आप ऐप को 'मिश्रण फीनिक्स.server'' या डिस्टिलरी रिलीज का उपयोग कर रहे हैं? –

+0

अपडेटेड पोस्ट, धन्यवाद। – sheldonkreger

उत्तर

1

एलीक्सिर के लिए बिल्डपैक MIX_ENVprodby default पर सेट कर रहा है, इसलिए आपको वास्तव में अपनी प्रक्रिया में इस सेटिंग की आवश्यकता नहीं है।

web: mix phoenix.server 

my-app-prod पर आप कुछ भी करने को नहीं है: आप इसे बस को बदल सकते हैं। my-app-test पर बस MIX_ENV से test पर सेट करें। आप कमांड लाइन

heroku config:set MIX_ENV=test --app my-app-test 

यदि यह काम नहीं करता है, तो अपने ऐप्स को हरोकू में पुन: नियोजित करने का प्रयास करें।

0

अपने Procfile में जहां यह कहते हैं:

web: mix phoenix.server 

के बाद से आप पहले से ही में MIX_ENV सेट कर रहे हैं:

web: MIX_ENV=prod mix phoenix.server 

आप के लिए इसे बदलने के लिए सक्षम होना चाहिए ऐप का सेट tings config vars आपको बस उस MIX_ENV भाग को छोड़ने में सक्षम होना चाहिए।

+0

मेरे रेपो में केवल एक प्रसंस्करण है। मैं इस तरह से कई वातावरण कैसे प्रबंधित करूं? – sheldonkreger

+0

@sheldonkreger क्या आपने Procfile के 'MIX_ENV = prod' भाग को छोड़ने का प्रयास किया है? चूंकि आप; अपने heroku कॉन्फ़िगरेशन में MIX_ENV सेट कर रहे हैं – ryanwinchester