gpt4 book ai didi

javascript - 部署到 Heroku 时如何忽略 GitHub 存储库中的文件?

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:52 25 4
gpt4 key购买 nike

我在 Heroku 上有一个与 GitHub 链接的 Node.js 应用程序。问题是,每次我将主分支部署到 Heroku 时,整个应用程序都会在 Heroku 上被覆盖。

通常这完全没问题,但是在根文件夹中有一个数据库文件,它通过聊天应用程序不断更新,并且在每次部署时都会重置。如果主脚本运行时 SQLite 数据库不存在,则会自动生成 SQLite 数据库。

我的问题是如何使 SQLite 数据库文件成为 Heroku 应用程序中唯一的持久文件,而不会在从 GitHub 上的 master 分支部署时被覆盖。

我尝试添加 .slugignore 文件并在其中包含 database.sqlite

最佳答案

为了回答您的问题,正如您所发现的,您可以在使用 .slugignore file 部署到 Heroku 时忽略文件。 .

但是,这并不能解决您的问题。 Heroku 的文件系统 is ephemeral 。每当您的测功机重新启动时,您对其所做的任何更改都将丢失。这个happens frequently (每天至少一次)。因此,即使您将 database.sqlite 添加到 .slugignore 中,您的数据也会丢失。

解决方案是使用客户端-服务器数据库而不是基于文件的数据库(例如 SQLite)。 Heroku Postgres是一个相当简单的选择,具有免费套餐。如果您不想使用 PosgreSQL,您可以 choose another database .

无论您选择什么数据库,我都强烈建议您在开发中也切换到相同的数据库。数据库系统并不是彼此的直接替代品,并且您不想在尝试部署到生产环境时发现差异。

关于javascript - 部署到 Heroku 时如何忽略 GitHub 存储库中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57930972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com