我在Heroku上有一个项目。这个项目允许我更新一个json文件。如果通过项目的Web界面更新heroku上的内容。我看到了更新。我可以关闭浏览器,打开它并更新预告。
现在,我想推动一些项目。如果我这样做,json文件将被覆盖。所以,我首先从heroku获取当前的项目状态。 heroku提示说一切都是最新的,这不是真的。我改变了json文件。
使用heroku run ls static/json/
显示文件,我需要在推送到heroku之前获取此文件,以避免破坏网络更新。
答案 0 :(得分:8)
我不认为这是可能的,原因之一是:Heroku dyno拥有它自己的ephemeral filesystem并且有最近代码的git checkout。但它不能反过来,不可能将dyno中的文件更改检入git repo。这就是为什么你得到“已经是最新的”回复的原因。当试图拉动时,因为heroku git遥控器与你的本地回购同步。
您应该将文件存储在亚马逊的S3或数据库中,甚至可以将数据写入数据库,以便在heroku部署之间保留。
答案 1 :(得分:0)
您可以运行heroku run bash
并备份该文件,然后再次部署您的应用运行heroku run bash
并删除新文件并将其替换为您备份的旧文件。希望它有所帮助