node.js - 我可以在 Heroku 上使用基于文件的数据库吗?
问题描述
我有一个部署到 Heroku 的小型 Node.js / Express 应用程序。
我想使用像NeDB这样的轻量级数据库来保存一些数据。如果我使用这种方法,是否可以定期从 Heroku 备份/复制文件?
解决方案
基于文件的数据库不适合 Heroku,因为它的临时文件系统(粗体添加):
每个 dyno 都有自己的临时文件系统,以及最近部署的代码的新副本。在 dyno 的生命周期中,它的运行进程可以将文件系统用作临时暂存器,但是任何其他 dyno 中的进程都看不到写入的文件,并且在停止或重新启动 dyno 时,写入的任何文件都将被丢弃。例如,任何时候由于应用程序部署而更换测功机时都会发生这种情况,并且作为正常测功机管理的一部分,大约每天一次。
根据您的用例,我建议使用客户端-服务器数据库(这里看起来很合适)或类似Amazon S3 的文件存储。
推荐阅读
- ios - App Clips - 通过网络延迟加载图像以减小大小
- gitlab - GitLab 作业允许在某些退出代码上失败
- python-2.7 - 来自行的Python条带模式匹配
- tizen - 使用 Tizen Studio 部署问题 - 证书错误 -14
- django - 如何创建 OneToMany 关系?
- android - Android Studio 无法检测到 Flutter 项目的项目结构
- node.js - 带有使用 NODEJS 的功能的问题 Stripe
- matplotlib - matplotlib ax.bar() 调用后哪些条形图可见(显示)?
- flutter - 连接服务协议出错:无法连接到http://127.0.0.1:50372/cKS-shG6lt4=/
- typescript - 如果在创建变量期间设置联合的具体元素,则变量联合类型被忽略