我正在为一个在线";建立自己的";纸牌游戏。在应用程序中,我有一个cards.json
文件,其中包含自定义卡数据。每当用户创建卡时,该文件都会使用fs进行更改
每当我推送本地更改时,cards.json
文件就会在部署时被覆盖。这意味着每次部署都会丢失所有远程数据。如何在使用git push heroku master
推送更改时远程包含cards.json
文件而不更改该文件
编辑:我想出于澄清的原因,我已经尝试使用.gitignore
并从暂存区删除该文件。我不完全确定,但我认为问题是,当部署应用程序时,文件会被覆盖。
所以我刚刚发现在运行时创建的数据总是会被删除/重置。
https://devcenter.heroku.com/articles/dynos#ephemeral-文件系统
我想对于其他有同样问题的人来说,最好的解决方案是:
a( 查看数据库和Heroku附加组件((
b( 这是一个很好的解决方法,可能有更好的方法来做到这一点,但是:
// Go into a new directory, and use
$ heroku ps:copy <FILENAME> --app <APPNAME>
// Then, copy+paste the data from this file into your main repo.
/* Now, each time you do this, you need to make sure you delete that file from the
* extra directory you created as ps:copy only works when the file doesnt exist locally.
*/
我认为git fetch
在这种情况下不起作用,因为它只提取未更改的文件,而不是从dyno中提取已更改的文件。
在git中查找.gitignore文件,在我看来这正是您想要的。
如果它一开始没有正确识别.gitignore:
git add [uncommitted changes you want to keep] && git commit
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
在.gitignore中添加cards.json和路径。例如src/test/resources/testdata/cads.json