我们正在使用Play 2.1.1及其内置的JPA集成(JPA.em() 等)。如何在运行时更改Play 2 Framework DB配置?
- 我们如何动态更改db.pass属性? Play.application()。configuration()似乎 在Play 2.1中是不可变的。 (或者我们至少不知道增变器)
- 如果我们能够更改db.pass,我们如何重新加载数据库配置,以便JPA.em()使用新密码返回一个EntityManager?
我们试图避免的是必须使用 EntityManagerFactory重新创建EntityManager。我们希望继续让Play在 中管理JPA帮助程序类。
背景
该系统具有本地运行一个默认的数据库配置。当部署到服务器,数据库密码是动态上运行的应用程序使用以下脚本设置:
#!/bin/bash
stty -echo
read -p "Password: " PASS
stty echo
curl -k https://127.0.0.1:8443/someUrl/pwd --data "password=$PASS"
应用收到这样的数据,然后重新创建休眠 SessionFactory的。我们新的Play应用将被要求做类似 的事情。
我正在尝试做类似的事情。你能否提供更多关于我可以接触到的细节。我的插件似乎在db配置执行后运行。 –
@ dom-farr我已经添加了关于钩子的评论。 –
谢谢。这将工作。虽然我现在已经找到了那些讨厌的变种,所以我可以扩大原始配置。 –