Я бы хотел, чтобы мое приложение 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
для использования?