首页 > 解决方案 > 我可以在 Heroku 上使用基于文件的数据库吗?

问题描述

我有一个部署到 Heroku 的小型 Node.js / Express 应用程序。

我想使用像NeDB这样的轻量级数据库来保存一些数据。如果我使用这种方法,是否可以定期从 Heroku 备份/复制文件?

标签: node.jsexpressherokunedb

解决方案


基于文件的数据库不适合 Heroku,因为它的临时文件系统(粗体添加):

每个 dyno 都有自己的临时文件系统,以及最近部署的代码的新副本。在 dyno 的生命周期中,它的运行进程可以将文件系统用作临时暂存器,但是任何其他 dyno 中的进程都看不到写入的文件,并且在停止或重新启动 dyno 时,写入的任何文件都将被丢弃。例如,任何时候由于应用程序部署而更换测功机时都会发生这种情况,并且作为正常测功机管理的一部分,大约每天一次。

根据您的用例,我建议使用客户端-服务器数据库(这里看起来很合适)或类似Amazon S3 的文件存储


推荐阅读