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