问题:为什么我不能打开数据库?
信息:我正在使用sqlite3数据库进行项目。我编写了一个测试程序,该程序运行并传递数据库:
sqlite3
/tmp/cer/could.db
单元测试程序可以使之db毫无问题。但是,当我实际使用将相同位置传递给它的程序时,出现以下错误:
db
OperationalError:无法打开数据库文件
我试着用:
1) an empty database. 2) the database and the unit test left behind. 3) no database at all.
在三种情况下,我遇到了以上错误。最令人沮丧的部分是事实unittest可以做到这一点,但实际程序却做不到。
unittest
关于到底发生了什么的任何线索?
主要诊断:SQLite由于某种原因无法打开该文件。
检查明显的原因,并按建议的大致顺序检查:
/tmp
df /tmp
/tmp/cer
如果您不在同一台计算机上,那么生产系统很可能没有/tmp/cer目录。显然首先要解决此问题。同样,如果您在同一台计算机上但以不同的用户身份运行,则可能会遇到权限/所有权问题。磁盘空间是另一个严重的难题,但是可能性很小。我不认为这是最后三个,但是值得检查是否可以解决更明显的部署问题。如果以上都不是,则您遇到了一个奇特的问题,将不得不报告更多的信息(它甚至可能是SQLite中的错误,但是了解它的开发人员,我相信这种可能性很小)。