如何从 Heroku 应用程序中提取更新的文件?
Posted
技术标签:
【中文标题】如何从 Heroku 应用程序中提取更新的文件?【英文标题】:How to pull updated files from a Heroku application? 【发布时间】:2020-01-13 20:05:37 【问题描述】:使用 Heroku 托管的新 Discord Bot,对文件进行了更改,我在更新代码时需要该文件,但我无法获取更新后的文件。
之前我曾尝试使用带有 Heroku 插件的 Git 使用 slug 命令和克隆命令来下载这些文件,但都返回无济于事。
我尝试的第一个命令是git clone https://git.heroku.com/APP_NAME.git
,它在我使用 API 登录后返回了一个空存储库。
然后我尝试heroku slugs:download -a APP_NAME
成功并下载了存储库,但它是 Deployed 构建的初始形式并且不包含更新的文件。
我的机器人将统计信息写入用户,例如“金钱”和“日常”类型的东西,发送到 userData.json file
。我在本地编辑机器人,将其推送到 GitHub,然后从 GitHub 部署到 Heroku。当我尝试下载 Heroku 的存储库时,我希望从机器人上线时更新userData.json
,这样当我对机器人进行更新时,我不会用旧信息覆盖新信息,但是在使用克隆时命令我得到一个空的 repo,当使用 slugs:download
时,我得到了 Heroku 在我第一次部署构建时得到的 repo。
【问题讨论】:
【参考方案1】:我的机器人将统计数据写入用户,例如“金钱”和“日常”类型的东西,写入
userData.json
文件
这不是 Heroku 的好策略,它有一个 ephemeral filesystem。每当您的 dyno 重新启动时,文件更改都会丢失,并且没有一种好的方法可以在 Heroku 上提交更改并将它们合并到您的存储库中。
数据通常不属于您的存储库。它是程序状态,应该允许从环境到环境进行更改。将数据保存在数据库中,而不是文件中。
Heroku Postgres 是一个相对低摩擦的选项,有一个免费层开始。如果你不喜欢 PostgreSQL,你可以选择another data store。
【讨论】:
以上是关于如何从 Heroku 应用程序中提取更新的文件?的主要内容,如果未能解决你的问题,请参考以下文章