用wsgi修改模式Flask后告诉我没有这样的列,但它就在那里

问题描述 投票:0回答:1

我按照 Flask 教程 (https://flask.palletsprojects.com/en/3.0.x/tutorial/) 创建了一个带有工厂和 SQLite 数据库的 Flask 应用程序。我通过 uwsgi 在服务器上运行该应用程序,并添加了 CI/CD 的 github 操作。

我修改了 schema.sql,重新初始化了 SQLite 数据库并重新安装了应用程序。现在我仍然可以在生产服务器上运行它,但是当我使用 uwsgi 启动它时,我得到 sqlite3.OperationalError: 未找到列(我更改/添加的列之一)。当我检查我的 SQLite 文件时,该列就在那里。

有什么想法吗?

python sqlite flask web-hosting uwsgi
1个回答
0
投票

问题出在 Flask 的 instance_path 上。

我的数据库位于/home/username/appname/instance/,但是Flask查找数据库的instance_path是:/home/username/.local/var/appname-instance/

当我在 create_app() 中显式设置 instance_path 时,它就起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.