Как изменить конфигурацию в распределенном приложении playframework

В настоящее время использую playframework 2.0.2, и в моем application.conf я установил информацию о соединении с БД.

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

Но что я хотел бы знать, так это то, что когда я запускаю свое приложение в производство, используя «play clean update dist», а затем устанавливаю его на сайт, application.conf отсутствует. Это означает, что я должен изменить соединение с базой данных, прежде чем распространять код? есть ли способ изменить соединение с базой данных в файле конфигурации после того, как вы его распространили?


person user1434177    schedule 02.11.2012    source источник


Ответы (2)


Когда вы используете play dist, файлы конфигурации упаковываются в файл jar в zip. Вы можете создать файл 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

Затем, когда вы запускаете приложение Play, скажите ему использовать файл prod.conf, запустив:

start -Dconfig.resource=prod.conf
person James Ward    schedule 02.11.2012
comment
Для этого потребуется дистрибутив, содержащий производственный пароль, не так ли? Если я не могу включить пароль prod в артефакт, будет ли работать запуск -Dconfig.resource=prod.conf -Ddb.default.pass=myBar? - person nemoo; 17.12.2013
comment
Да, хорошее уточнение. Параметры конфигурации также можно установить с помощью аргументов командной строки -D. Или вы можете использовать -Dconfig.file=/home/blah/prod.conf, чтобы не помещать файл prod.conf в артефакт. - person James Ward; 17.12.2013

Чтобы вообще не упаковывать файл конфигурации, я бы посоветовал вам создать prod.conf на рабочих серверах и сохранить его в папке, отличной от папки, в которую вы распаковываете распространяемые файлы. Затем создайте сценарий запуска, как показано ниже (или более сложный сценарий запуска, который запускает ваше приложение как службу). Сохраняя файл конфигурации отдельно от вашего дистрибутивного пакета, вы избегаете риска случайного переопределения его при отправке новых изменений.

#!/bin/bash
sh start -Dconfig.file=/path/to/prod.conf &
person Ola Wiberg    schedule 05.11.2012