कुछ तरकीबें हैं जो आपको उपयोगी लग सकती हैं।
सबसे पहले, MySQL का /*! */
संकेतन आपको कोड जोड़ने की अनुमति देता है जिसका MySQL पालन करेगा, लेकिन अन्य DB अनदेखा कर देंगे, उदाहरण के लिए:
create table Users (
id bigint not null auto_increment,
name varchar(40)
) /*! engine=InnoDB */
यह एक चांदी की गोली नहीं है, लेकिन यह आपको MySQL और H2 के सिंटैक्स के बीच के कुछ अंतरों पर कागज़ात करने देगी। यह एक MySQL-ism है, इसलिए यह अन्य डेटाबेस के साथ मदद नहीं करेगा, लेकिन चूंकि अधिकांश अन्य डेटाबेस MySQL की तरह विचित्र नहीं हैं, इसलिए आपको शायद इसकी आवश्यकता नहीं होगी - हमने अपने डेटाबेस को MySQL से PostgreSQL में माइग्रेट किया, जो नहीं करता है /*! */
संकेतन, लेकिन PostgreSQL H2 के समान है जिसकी हमें आवश्यकता नहीं थी।
यदि आप देव और ठेस के लिए एक अलग विन्यास का उपयोग करना चाहते हैं, तो संभवतः आप उत्पादों के लिए अतिरिक्त विन्यास रखने से सबसे अच्छे हैं। इसका कारण यह है कि आप शायद अपने देव सर्वर को play run
. के साथ प्रारंभ करेंगे , और अपने प्रोड सर्वर को play stage; target/start
. target/start
एक -Dconfig.resource
ले सकते हैं पैरामीटर। उदाहरण के लिए, एक अतिरिक्त कॉन्फ़िग फ़ाइल बनाएँ prod.conf
उत्पाद के लिए जो इस तरह दिखता है:
include "application.conf"
# Extra config for prod - this will override the dev values in application.conf
db.default.driver=...
db.default.url=...
...
और एक start_prod
बनाएं स्क्रिप्ट जो इस तरह दिखती है:
#!/bin/sh
# Optional - you might want to do this as part of the build/deploy process instead
#play stage
target/start -Dconfig.resource=prod.conf
सिद्धांत रूप में, आप इसे दूसरे तरीके से कर सकते हैं, और आपके पास application.conf
है उत्पाद कॉन्फ़ को शामिल करें, और एक dev.conf
बनाएं फ़ाइल, लेकिन आप शायद चाहते हैं कि किसी भी तरह से एक स्क्रिप्ट शुरू हो जाए (आपको शायद अतिरिक्त JVM/मेमोरी/जीसी पैरामीटर की आवश्यकता होगी, या इसे rc.d, या जो कुछ भी जोड़ने के लिए)।