2012-11-02 25 views
5

anda Play Framework 2.0.2 kullanıyorum ve ben içine Başvurumu koyduğunuzda benim dosyasına koyarak i db bağlantı bilgisidağıtılmış Play Framework uygulamasında yapılandırmayı nasıl değiştirilir

db.default.url="jdbc:mysql://localhost:3306/test" 
db.default.driver=com.mysql.jdbc.Driver 
db.default.user=test 
db.default.pass=test 

set Ama bildiğim istiyorum olduğunu üretim "temiz güncelleme diski" kullanarak ve daha sonra sitede hiçbir application.conf yoktur. Bu, kodu dağıtmadan önce db bağlantısını değiştirmem gerektiği anlamına mı geliyor? dağıtıldıktan sonra db bağlantısını bir yapılandırma dosyasında değiştirmenin bir yolu var mı?

cevap

8

play dist'u kullandığınızda, yapılandırma dosyaları zip içindeki bir jar dosyasına paketlenir. Sen gibi bir conf/prod.conf dosya içeren bir şey yaratmak olabilir: Play uygulamasını başlattığınızda

include "application.conf" 

db.default.url="jdbc:mysql://foo.com:3306/mydb" 
db.default.driver=com.mysql.jdbc.Driver 
db.default.user=foo 
db.default.pass=bar 

Sonra çalıştırarak prod.conf dosyasını kullanmak için bunu söylemek:

start -Dconfig.resource=prod.conf 
+0

Bu, üretim parolasını içeren bir dağıtım paketine ihtiyaç duyardı, değil mi? Bir prod şifresini bir artefakt içine ekleyemezsem, "start -Dconfig.resource = prod.conf -Ddb.default.pass = myBar" olarak çalışır mı? – nemoo

+1

Evet, iyi bir açıklama. Konfigürasyon paramları ayrıca '-D' komut satırı arjları kullanılarak da ayarlanabilir. Ya da 'prod.conf' dosyasını artifact içine koymaktan kaçınmak için' -Dconfig.file =/home/blah/prod.conf' kullanabilirsiniz. –

4

tüm I'de yapılandırma dosyası ambalaj önlemek için üretim sunucularında bir prod.conf oluşturmanızı ve dağıtılan dosyaları açtığınız klasör dışındaki bir klasörde saklamanızı önerir. Ardından, aşağıdaki gibi bir başlangıç ​​komut dosyası oluşturun (veya uygulamanızı bir hizmet olarak başlatan daha karmaşık bir başlatma komut dosyası). Config dosyasını dist paketinden ayrı tutarak, yeni değişiklikleri yaparken yanlışlıkla geçersiz kılma riskini ortadan kaldırırsınız.

#!/bin/bash 
sh start -Dconfig.file=/path/to/prod.conf & 
İlgili konular