我可以在 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 来托管我的 d.py 机器人,它可以在 mongodb 中写入并保存到我的数据库吗?