Play Framework应用和嵌入式数据库封装

Play Framework Application and embedded Database packaging

我用 Play Framework 实现了一个服务器应用程序。 我使用 SBT Native Packager.
为不同的操作系统(Linux、Windows、Mac OS X)构建了本机包 此应用程序需要一个 NoSQL 数据库。特别是,我正在使用 MongoDB。有没有办法在我的原生包中嵌入 MongoDB binary/package?这是最佳做法吗?或者您是否建议使用两个不同的包安装 MongoDB 和我的 Play 应用程序?
如果不可能/建议将 MongoDB 嵌入到一个包中,您是否建议使用另一个 DBMS(例如 Nitrite Database)?谢谢

这不是真正的最佳做法。 Play 嵌入了 H2 内存数据库,但这仅用于开发(因为它比 reads/writes 到磁盘的东西更快)。

您确实希望 Mongo(或您决定使用的任何其他数据存储)实例 运行在不同的进程中,并与您的实例分开打包、部署、停止、启动播放应用程序。

您可能会弄清楚如何将它与您的 Play 应用程序打包,然后在应用程序启动期间使用一些脚本 运行 来设置数据库并加载 -dbpath 中的任何现有数据,即。每当你 redeploy/restart 你的申请。但是每次重新部署代码更改时,您都必须 stop/redeploy 您的 Mongo 二进制文件。您可能会在一年内多次更新您的应用程序,但您不太可能希望如此频繁地更新您的 Mongo 二进制文件。我可以继续,但不要这样做。最好的做法是将数据存储与应用程序分开管理。