我在使用sqlite3数据库的flask中创建了一个应用程序。当我使用Flask的内部测试服务器运行它时,该应用程序完美无缺。但是,当我尝试部署我的应用程序时,使用apache2或gunicorn + nginx,以及我正在使用的任何服务器的日志显示“OperationalError:无法打开数据库文件”。
以下是导致错误的完整文件:
import sqlite3
__all__ = ['Database']
class Database(object):
def __init__(self, name):
self._name = name
def _execute(self, command, args=None):
connection = sqlite3.connect(self._name)
cursor = connection.cursor()
if args is None:
out = cursor.execute(command).fetchall()
else:
out = cursor.execute(command, args).fetchall()
connection.commit()
connection.close()
return out
connection = sqlite3.connect(self._name)
是实际触发错误的行,我不知道为什么。我已经尝试用硬编码的字符串替换self._name
到数据库的路径无济于事。我还确保数据库文件具有正确的读写权限。
有谁知道我怎么知道发生了什么?