在使用heroku(discord.py)托管时遇到问题

zqry0prt  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(134)

我将Github项目连接到Heroku,每次我提交时,Heroku都会重新启动我的应用,它会覆盖我的userDB.xlsx,这会重置数据。我可以保存Heroku对文件所做的更改并自动提交到Github吗?我的项目使用python,并使用Visual Studio Code进行编码。
我使用这段代码来保存/加载userDB.xlsx

from openpyxl import *
import os

workbook_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"userDB.xlsx")

wb = load_workbook(workbook_path)
ws = wb.active

def loadFile():
    wb = load_workbook(workbook_path)
    ws = wb.active
def saveFile():
    wb.save(workbook_path)
    wb.close()
jckbn6z7

jckbn6z71#

Heroku不适合永久存储数据。Heroku的文件系统是短暂的,因此一旦您的应用程序重新启动,文件内容的更改将被恢复。
你试图存储持久数据的方法是行不通的。合适的方法是把你的数据存储在项目文件系统之外,当需要的时候从那里访问/修改它。
在您的情况下,最好的选择似乎不是将数据库存储在您的计算机上(这样即使计算机关闭,您也可以访问它)。
Heroku的数据库插件允许你在服务器上存储你的数据库。你可以看到完整的插件列表here。一个不错的选择是Postgres的数据库插件。
P.S.:即使您的应用程序运行在Heroku上,您也可以使用非Heroku数据库替代方案。

相关问题