每当我的应用程序进入睡眠状态并重新启动时,我都会丢失数据库中的数据我不存储任何媒体,它只是表单数据(文本(。。。我在strapi上建立了这个应用程序,我遵循了他们所有的指导方针,但它一直在发生。如果有人能帮助,我会很高兴
本地数据(文件,db(在Dyno重新启动后被清除,因为Heroku文件系统是短暂的。Dyno(至少(每24小时重新启动一次。
在您的案例中,Strapi使用SQLite,其中数据保存在本地文件中。
Strapi建议在Heroku上配置Postgres,或者可以使用外部DB存储服务。
首先:
- 当您使用strapi创建内容类型时,它会为相应的控制器/路由/服务生成代码(=新文件(
- Heroku在重新启动后不会保留数据
- 重新启动后,strapi检查代码中存在哪些内容类型,并从数据库中删除不存在类型的表
因此,在Heroku上,您必须在本地设置所有内容类型,并连接到外部数据库(例如Heroku Postgres(,但决不能连接到strapi默认的基于文本文件的数据库。然后推送生成的文件,最后进行部署。
因此,在Heroku上,您应该始终以生产模式运行。这样,更改内容类型的选项将被完全阻止,并且在重新启动后不会遇到数据丢失的问题。