Me gustaría que mi aplicación Play utilice diferentes bases de datos para entornos de prueba, locales y de producción (producción es Heroku).¿Cómo configurar diferentes bases de datos por entorno en Play 2.0?
En application.conf
que tengo:
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}
Esto no parece funcionar. Cuando corro play test
o play run
, todo el acceso DB falla con:
Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258)
Tengo algunas preguntas acerca de este:
En general, estoy un poco confundido acerca de cómo se configuran las bases de datos en Play: parece que hay
db
llana,db.[DBNAME]
ydb. [DBNAME].url
y diferentes tutoriales hacen diferentes elecciones entre esos. Ciertas expresiones que parecen que deberían funcionar (por ejemplo,db.default.url = "jdbc:..."
fallan con un error de que se proporcionó una cadena donde se esperaba un objeto).que he visto otras personas sugieren que creo separados
prod.conf
,dev.conf
ytest.conf
archivos que incluyen cada unoapplication.conf
y contendrá entonces DB de configuración específica. Pero en ese caso, ¿cómo especifico qué base de datos usar cuando ejecutotest
desde la consola Play?¿Se supone que la sintaxis
%env
funciona en Play 2?¿Cuál es la forma correcta de especificar un entorno para el uso de
play test
?
Hmm, eso tiene sentido - por lo que aquellos ' ¿% prod' tips fueron para Play 1.x? Gracias por los ejemplos. De hecho, tengo el problema de configuración dev/prod resuelto en este punto. Mi pregunta restante sigue siendo: ¿cómo configuro Play para utilizar un entorno diferente cuando ejecuto el banco de pruebas? – Bill
Sí, las cosas '% prod' son solo Play 1.x. Debería poder hacer lo mismo cuando ejecute las pruebas: 'play -Dsetting = foo ~ test' –
Eso es cierto, pero parece muy propenso a errores: si dejo de forma automática el nombre de archivo de configuración, mi (potencialmente destructivo)) test suite se ejecutará contra mi base de datos dev. ¿No hay otra manera de hacer esto? El enfoque% prod de Play 1 parece más que suficiente, no estoy seguro de por qué ya no está disponible. – Bill