如何从heroku应用程序下载最新更改的源代码和文件



我的问题:

我有一个使用python的heroku应用程序,它基本上只是一个推特机器人。人们在这里提到账户,机器人会自动回复。我已使用Heroku CLI进行了部署。现在,为了确保我不会多次处理同一个查询,我将每个查询保存在json文件中,然后每周将其重置为空dict

with open("weekly_tweets.json", "r") as f:
tweets_dict = json.load(f)
if matched_name in tweets_dict: ## already processed query for player that week
api.update_status("blah blah") ##do something
else: ##new query
tweet = api.update_with_media("other blah blah") ##do something else

## Here's where I update the json file for every new query weekly
tweets_dict[matched_name] = tweet.id ##update dict
with open("weekly_tweets.json", "w") as f:
json.dump(tweets_dict, f) ##save dict

问题:

我想稍后更改应用程序中的内容。为此,我想通过从heroku应用程序进行克隆

heroku git:clone -a APP-NAME会给我json文件的最新版本。

事实并非如此,我实际上得到了与第一次部署时推送的相同的空json文件这是一个问题,因为如果我现在进行更改并推送,我将处理上周已经处理的所有请求。


实际问题:如何获得具有更新的json文件的存储库的当前版本,以便与我的机器人程序保持同步?我在这里有什么选择(最好是免费的(,如果有的话?

提前感谢!如果它很重要,完整的代码在这里

Heroku文件系统是短暂的:应用程序保存的文件是临时的(,并且在每次Dyno重新启动和应用程序重新部署时都会被删除
Dyno重新启动至少每24小时一次。

在"Heroku上的文件"中,您可以看到有关如何在外部存储中保存文件的几个选项。

将文件与源代码一起存储是可能的:使用PyGithub,应用程序可以将文件提交/推送到存储库中(即使它是私有的(

github = Github('personal_access_token')
# get repo by name
repository = github.get_user().get_repo('my_repo')
# define path in the repository
filename = 'files/file.json'
# JSON content
content = '{}'
# create with commit message
f = repository.create_file(filename, "create_file via PyGithub", content)

最新更新