मैं अपने प्ले ऐप को परीक्षण, स्थानीय और उत्पादन (उत्पादन हेरोकू) वातावरण के लिए विभिन्न डेटाबेस का उपयोग करना चाहता हूं।Play 2.0 में प्रति वातावरण के विभिन्न डेटाबेस कैसे सेट अप करें?
application.conf
में मेरे पास है:
db.default.driver=org.postgresql.Driver
%dev.db.default.url="jdbc:postgresql://localhost/foobar"
%test.db.default.url="jdbc:postgresql://localhost/foobar-test"
%prod.db.default.url=${DATABASE_URL}
यह काम करने के लिए प्रतीत नहीं होता। जब मैं play test
या play run
, चलाने सभी डीबी उपयोग के साथ विफल रहता है:
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
मैं इस बारे में कुछ प्रश्न हैं:
सामान्य तौर पर, मैं एक छोटे से कैसे डेटाबेस कॉन्फ़िगर किया गया है के बारे में उलझन में हूँ प्ले में: ऐसा लगता है कि सादा
db
,db.[DBNAME]
औरdb. [DBNAME].url
और विभिन्न ट्यूटोरियल के बीच अलग-अलग विकल्प बनाते हैं। कुछ अभिव्यक्तियां जो प्रतीत होती हैं उन्हें काम करना चाहिए (उदा।db.default.url = "jdbc:..."
एक त्रुटि के साथ विफल हो गई है जहां एक स्ट्रिंग प्रदान की गई थी जहां ऑब्जेक्ट की अपेक्षा की गई थी)।मैंने देखा है अन्य लोगों का सुझाव है कि मैं अलग
prod.conf
,dev.conf
औरtest.conf
फ़ाइलों कि प्रत्येक शामिलapplication.conf
बनाने और उसके बाद डीबी विशिष्ट विन्यास होते हैं। लेकिन उस स्थिति में, मैं प्ले कंसोल सेtest
चलाते समय डेटाबेस का उपयोग करने के लिए कैसे निर्दिष्ट करूं?%env
सिंटैक्स प्ले 2 में काम करना चाहिए?उपयोग करने के लिए
play test
के लिए वातावरण निर्दिष्ट करने का सही तरीका क्या है?
हम्म, यह समझ में आता है - तो उन ' % prod' युक्तियाँ प्ले 1.x के लिए थीं? उदाहरणों के लिए धन्यवाद। मैं वास्तव में इस बिंदु पर dev/prod विन्यास मुद्दा काम किया है। मेरा शेष प्रश्न अभी भी है: परीक्षण सूट चलाते समय मैं एक अलग वातावरण का उपयोग करने के लिए Play को कैसे कॉन्फ़िगर कर सकता हूं? – Bill
हां, '% prod' सामान केवल 1.x चलाएं। जब आप परीक्षण चलाते हैं तो आपको वही काम करने में सक्षम होना चाहिए: 'play -Dsetting = foo ~ test' –
यह सच है, लेकिन यह बहुत त्रुटि-प्रवण प्रतीत होता है: यदि मैं समझदारी से कॉन्फ़िगरेशन फ़ाइल नाम छोड़ देता हूं, तो मेरा (संभावित रूप से विनाशकारी) टेस्ट सूट मेरे देव डेटाबेस के खिलाफ चलाएगा। ऐसा करने का कोई और तरीका नहीं है? प्ले 1 से% प्रोड दृष्टिकोण पर्याप्त से अधिक प्रतीत होता है, यह सुनिश्चित नहीं है कि यह अब क्यों उपलब्ध नहीं है। – Bill