【问题标题】:Microsoft Azure App services: cannot write to sqlite databaseMicrosoft Azure App 服务:无法写入 sqlite 数据库
【发布时间】:2019-11-12 15:33:10
【问题描述】:

我正在尝试在 Microsoft Azure 上部署我的烧瓶应用程序。在已部署的站点上,它可以很好地读取数据库,但是每当我尝试写入数据库时​​,它都会给出:sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked

我在app文件夹内的文件结构是:

  • 模板
  • app.py
  • db.sqlite

但是,当我在本地运行它时,一切正常。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 你能解决这个问题吗?

标签: sqlite azure azure-web-app-service flask-sqlalchemy


【解决方案1】:

Run from Package 使 wwwroot 只读,并且在将文件写入此目录时会收到错误消息。您可以参考以下链接可能会有所帮助: https://github.com/Azure/app-service-announcements/issues/84

https://docs.microsoft.com/en-us/azure/azure-functions/run-functions-from-deployment-package

【讨论】:

    【解决方案2】:

    没有更多信息可以帮助我们解决您的问题,例如将 SQLAlchemy 与 SQLite 结合使用所需的代码和配置。

    所以我建议你可以仔细参考一些关于SQLite锁定文件的主题进行编写。

    1. Database Locking Behavior / Concurrency
    2. SQLite 官方页面Appropriate Uses For SQLiteSituations Where A Client/Server RDBMS May Work Better 部分的Client/Server ApplicationsHigh Concurrency 项。

    同时,一些现有的 SO 线程可能会对您有所帮助。

    1. sqlite3.OperationalError: database is locked
    2. SQLAlchemy and SQLite: database is locked

    希望对您有所帮助。如果您可以更新您的描述以发布更多有用的信息,我将尝试重现您的问题并修复它,然后更新我的帖子。

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2021-10-06
      • 2021-06-02
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      相关资源
      最近更新 更多