Chciałbym, aby moja aplikacja Play korzystała z różnych baz danych dla środowisk testowych, lokalnych i produkcyjnych (produkcja to Heroku).Jak skonfigurować różne bazy danych dla środowiska w wersji Play 2.0?
W application.conf
mam:
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}
nie wydają się działać. Kiedy uruchamiam play test
lub play run
, All Access DB nie powiedzie się z:
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
Mam kilka pytań na ten temat:
Generalnie, jestem trochę mylić o tym, jak bazy danych są skonfigurowane w Play: wygląda na to, że są zwykłe
db
,db.[DBNAME]
idb. [DBNAME].url
, a różne tutoriale dokonują różnych wyborów spośród tych . Niektóre wyrażenia, które wyglądają, jakby powinny działać (np.db.default.url = "jdbc:..."
, nie powiodły się z błędem, że podano ciąg znaków, gdy obiekt był oczekiwany).widziałem inni sugerują, że tworzę osobne
prod.conf
,dev.conf
itest.conf
pliki z których każda zawieraapplication.conf
a następnie zawierać DB-specyficzną konfigurację. Ale w takim przypadku, w jaki sposób określić, jakiej bazy danych użyć po uruchomieniutest
z konsoli Play?Czy składnia
%env
ma działać w Play 2?Jaki jest prawidłowy sposób określenia środowiska, z którego można korzystać
play test
?
Hmm, to ma sens - a więc tych, ' Wskazówki% prod' były dla Play 1.x? Dzięki za przykłady. Naprawdę mam problem konfiguracji dev/prod opracowany w tym momencie. Pozostaje jeszcze pytanie: jak skonfigurować Play, aby używać innego środowiska podczas uruchamiania zestawu testów? – Bill
Tak, rzeczy '% prod' to tylko Play 1.x. Powinieneś być w stanie zrobić to samo po uruchomieniu testów: 'play -Dsetting = foo ~ test' –
To prawda, ale wydaje się bardzo podatna na błędy: jeśli akuratnie zostawiam nazwę pliku konfiguracyjnego, moja (potencjalnie niszcząca) zestaw testów będzie działał przeciwko mojej bazie danych dev. Czy nie ma innego sposobu, aby to zrobić? Podejście% prod z gry 1 wydaje się być więcej niż wystarczające, nie wiem, dlaczego nie jest już dostępne. – Bill