我可以在 Heroku 上使用基于文件的数据库吗?

Posted

技术标签:

【中文标题】我可以在 Heroku 上使用基于文件的数据库吗?【英文标题】:Can I use a file based database on Heroku? 【发布时间】:2021-12-16 23:41:36 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

基于文件的数据库不适合 Heroku,因为它的 ephemeral filesystem(加粗):

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

根据您的用例,我建议使用客户端-服务器数据库(这里看起来很合适)或类似 Amazon S3 for file storage 的东西。

【讨论】:

以上是关于我可以在 Heroku 上使用基于文件的数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

可以从 Heroku 运行 mongoimport 吗?

如果我使用 Heroku 来托管我的 d.py 机器人,它可以在 mongodb 中写入并保存到我的数据库吗?

剑圣可以在 Heroku 上工作吗?

我可以从 Heroku 下载使用 github 部署的源代码吗?

在 Heroku 上部署 asgi 和 wsgi

你能从部署在 GitHub 上的 heroku 应用程序写入 JSON 文件吗