2012-11-02 3 views
5

현재 playframework 2.0.2을 사용하고 난에 내 응용 프로그램을 넣을 때 내 application.conf에서 나는 DB 연결 정보분산 playframework 응용 프로그램에서 설정을 변경하는 방법

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

을 설정하지만 내가 알고 싶은 것은 "깨끗한 업데이트 배포 재생"을 사용하여 제작 한 다음 application.conf가없는 사이트에 설치하십시오. 즉, 코드를 배포하기 전에 db 연결을 변경해야합니다. 그것을 배포 한 후 구성 파일에서 db 연결을 변경하는 방법이 있습니까?

답변

8

play dist을 사용하면 구성 파일이 zip의 jar 파일로 패키지됩니다. 당신은 같은 conf/prod.conf 파일이 들어있는 뭔가 만들 수 있습니다 : 당신이 재생 응용 프로그램을 시작할 때

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 

을 다음 실행하여 prod.conf 파일을 사용하도록 알려주기 :

start -Dconfig.resource=prod.conf 
+0

생산 암호가 포함 된 배포 패키지가 필요합니까, 그렇지 않습니까? 인공 지능에 비밀 번호를 포함 할 수 없다면 "-Dconfig.resource = prod.conf -Ddb.default.pass = myBar"를 시작해야합니까? – nemoo

+1

네, 좋은 설명입니다. config 매개 변수는'-D' 명령 행 인자를 사용하여 설정할 수도 있습니다. 또는'-Dconfig.file =/home/blah/prod.conf'를 사용하여 이슈에'prod.conf' 파일을 넣는 것을 피할 수 있습니다. –

4

모든 I에서 설정 파일을 포장 방지하기 위해 프로덕션 서버에서 prod.conf를 작성하고 분산 파일의 압축을 푸는 폴더가 아닌 다른 폴더에 저장하는 것이 좋습니다. 그런 다음 아래의 시작 스크립트 (또는 서비스로 앱을 시작하는보다 정교한 시작 스크립트)를 만듭니다. 설정 파일을 dist 패키지와 별도로 유지함으로써 새로운 변경 사항을 푸시 할 때 우연히 무시할 위험을 피할 수 있습니다.

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