【发布时间】:2019-08-05 22:14:10
【问题描述】:
我有一个带有 better-sqlite3 硬币和 XP 数据库的 Discord 机器人。直到 2 周前它一直运行良好。现在,每次重新启动后,它只会设置 XP 和硬币。这真的很烦人,因为人们每天都在升级同一级别。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: javascript sqlite heroku discord.js
我有一个带有 better-sqlite3 硬币和 XP 数据库的 Discord 机器人。直到 2 周前它一直运行良好。现在,每次重新启动后,它只会设置 XP 和硬币。这真的很烦人,因为人们每天都在升级同一级别。
有人知道如何解决这个问题吗?
【问题讨论】:
标签: javascript sqlite heroku discord.js
如果这能正常工作,我会非常感到惊讶。
每当您的 dynos 重新启动时,Heroku 的 ephemeral filesystem 都会丢失对其所做的所有更改。这个happens frequently(每天至少一次)。因此,像 SQLite aren't supported on Heroku 这样的基于文件的数据库。
如果你想在 Heroku 上运行你的代码,你必须切换到客户端-服务器数据库。 PostgreSQL 是一种常见的选择,Heroku 提供了自己的hosted PostgreSQL service,您可以免费开始使用。
【讨论】:
enmap@3(版本 4 不再支持 postgress)并使用 enmap-postgress provoider。这将允许您使用 Discord.js Collections 之类的结构来存储数据。 ( enmap.set() / enmap.get() )