Я хочу, чтобы мое приложение Play использовало разные базы данных для тестирования, локальной и рабочей (производство - среда Heroku ).
В application.conf
у меня есть:
db.default.driver=org.postgresql.Driver
%dev.db.default.url="jdbc:postgresql://localhost/foobar"
%test.db.default.url="jdbc:postgresql://localhost/foobar-test"
%prod.db.default.url=${DATABASE_URL}
Похоже, это не работает. Когда я запускаю play test
или play run
, весь доступ к БД завершается с ошибкой:
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
У меня есть несколько вопросов по этому поводу:
В общем, я немного запутался в том, как настроены базы данных в Play :похоже, что есть простые db
, db.[DBNAME]
и db.
[DBNAME].url
, и разные туториалы делают разные выборы между ними. те. Определенные выражения, которые, кажется, должны работать (, например. db.default.url = "jdbc:..."
завершится ошибкой из-за того, что вместо ожидаемого объекта была указана строка ).
Я видел, как другие люди предлагают мне создать отдельные файлы prod.conf
, dev.conf
и test.conf
, каждый из которых включает application.conf
, а затем содержит конкретную конфигурацию БД -. Но в таком случае, как указать, какую базу данных использовать при запуске test
из консоли Play?
Должен ли синтаксис %env
работать в Play 2?
Как правильно указать среду, которую будет использовать play test
?