【问题标题】:Play Framework Application and embedded Database packagingPlay Framework 应用程序和嵌入式数据库打包
【发布时间】:2018-12-29 07:19:46
【问题描述】:
我使用 Play Framework 实现了一个服务器应用程序。
我使用 SBT Native Packager 为不同的操作系统(Linux、Windows、Mac OS X)构建了本机软件包。
此应用程序需要 NoSQL 数据库。特别是,我正在使用 MongoDB。有没有办法在我的本机包中嵌入 MongoDB 二进制/包?这是最佳做法吗?或者您是否建议使用两个不同的包安装 MongoDB 和我的 Play 应用程序?
如果无法/建议将 MongoDB 嵌入到一个包中,您是否建议使用另一个 DBMS(例如 Nitrite Database)?谢谢
【问题讨论】:
标签:
mongodb
playframework
packaging
embedded-database
sbt-native-packager
【解决方案1】:
这并不是真正的最佳做法。 Play 嵌入了 H2 内存数据库,但这仅用于开发(因为它也比读/写磁盘更快)。
您确实希望您的 Mongo(或您决定使用的任何其他数据存储)实例在不同的进程中运行,并与您的 Play 应用程序分开打包、部署、停止和启动。
您可能会弄清楚如何将其与您的 Play 应用程序打包,然后在应用程序启动期间运行一些脚本来设置数据库并加载 -dbpath 中的任何现有数据,即。每当您重新部署/重新启动应用程序时。但是,每次重新部署代码更改时,您都必须停止/重新部署 Mongo 二进制文件。您可能会在一年内多次更新您的应用程序,但您不太可能希望经常更新您的 Mongo 二进制文件。我可以继续,但不要这样做。最佳做法是与应用程序分开管理数据存储。