我在带有sqlite数据库的PC上的测试环境中运行Django应用程序。最近我在尝试使用我的应用程序时遇到了问题,因为当我执行多个操作时,应用程序只会在错误的情况下发出错误数据库已被锁定'而且我无法执行任何行动。
我尝试了在How do I unlock a SQLite database?中找到的几个操作,比如重命名数据库,复制数据库和重新启动计算机,但似乎都没有解锁数据库。我唯一能做的就是完全删除数据库并创建一个新数据库。
奇怪的是,我通过shell或通过不同的数据库查看器(如SQLite的DB浏览器)更改数据库没有任何问题。只有当我尝试通过我的前端或管理页面对数据库进行更改时,才会锁定数据库。错误(我甚至无法登录我的应用程序)。这让我怀疑数据库并没有真正锁定,但其他可能正在发生。
数据库被锁定时有不同的时刻,但我确实有一个批量创建大约100个对象的迁移,并且使用此迁移将每次锁定数据库。但是,如果我不运行迁移,那么在使用该应用程序一段时间后也会产生问题。到目前为止,我尝试过,但未能确定导致数据库锁定的确切操作。在不同的时间似乎是一种不同的行为。
我希望有人认识到这个问题并且可以帮助我。