Как настроить разные базы данных для каждой среды в Play 2.0?

Я хочу, чтобы мое приложение 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?

22
задан John Lehmann 4 April 2013 в 01:04
поделиться