2012-11-02 13 views
5

Attualmente utilizzando play framework 2.0.2 e nella mia application.conf ho impostato l'informazioni di connessione dbCome modificare la configurazione in applicazione play framework distribuita

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

Ma quello che vorrei sapere è quando ho messo la mia domanda in produzione utilizzando "play clean update dist" e quindi installarlo sul sito non c'è application.conf. Ciò significa che devo cambiare la connessione db prima di distribuire il codice? c'è un modo per cambiare la connessione db in un file di configurazione dopo averlo distribuito?

risposta

8

Quando si utilizza play dist i file di configurazione vengono impacchettati in un file jar nello zip. Si potrebbe creare un conf/prod.conf file contenente qualcosa come:

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 

Poi, quando si avvia il gioco app dirgli di usare il file prod.conf eseguendo:

start -Dconfig.resource=prod.conf 
+0

Quello avrebbe bisogno di un pacchetto di distribuzione che contiene la password di produzione, non sarebbe? Se non riesco a includere una password di produzione in un artefatto, funzionerebbe su "start -Dconfig.resource = prod.conf -Ddb.default.pass = myBar"? – nemoo

+1

Sì, buon chiarimento. I parametri di configurazione possono anche essere impostati usando gli argomenti della riga di comando '-D'. Oppure puoi usare '-Dconfig.file =/home/blah/prod.conf' per evitare di inserire il file' prod.conf' nell'artefatto. –

4

Per evitare il confezionamento del file di configurazione a tutti I suggerirebbe di creare un prod.conf sui server di produzione e di archiviarlo in una cartella diversa dalla cartella per decomprimere i file distribuiti. Quindi crea uno script di avvio come di seguito (o uno script di avvio più sofisticato che avvia l'app come servizio). Mantenendo il file di configurazione separato dal pacchetto dist, si evita il rischio di sovrascriverlo accidentalmente quando si inviano nuove modifiche.

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