[英]How to ignore a file from GitHub repo when deploying to Heroku?
我在Heroku上有一个与GitHub链接的Node.js应用。 问题是每次我将master分支部署到Heroku时,整个应用程序都会在Heroku上被覆盖。
通常,这很好,但是在根文件夹中有一个数据库文件,该文件通过聊天应用程序不断更新,并且在每次部署时都会重置。 如果运行主脚本时不存在,则将自动生成SQLite数据库。
我的问题是如何使SQLite数据库文件成为Heroku应用程序中唯一的持久文件,而不会被GitHub上master分支的部署覆盖。
我尝试添加.slugignore
文件并在其中包括database.sqlite
如您.slugignore
,为了回答您的问题,您可以使用.slugignore
file部署到Heroku时忽略文件 。
但是,这不能解决您的问题。 Heroku的文件系统是短暂的 。 每当您的dyno重新启动时,对它所做的任何更改都将丢失。 这经常发生 (每天至少一次)。 结果,即使将database.sqlite
添加到.slugignore
,您的数据也会丢失。
解决方案是使用客户端服务器数据库而不是基于文件的数据库(如SQLite)。 Heroku Postgres是一个相当免费的免费套餐。 如果不想使用PosgreSQL,可以选择另一个数据库 。
无论您选择哪种数据库,我都建议您也切换到开发中的同一数据库。 数据库系统不是彼此的直接替代品,在尝试部署到生产环境时,您不想发现差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.