繁体   English   中英

OperationalError:尝试在 Google Cloud 应用程序上写入只读数据库

[英]OperationalError: Attempt to Write A ReadOnly Database on Google Cloud Application

最近,我一直在尝试部署一个交互式 Google App Engine,它写入 SQLite 数据库,在本地运行应用程序时工作正常,但是通过服务器运行它时,我收到错误:

OperationalError: attempt to write a readonly database

我尝试更改我的.db.sql的权限,但没有运气。

任何建议将不胜感激。

您可以尝试更改目录的权限并检查.sqllite 文件是否存在并且可写

但一般来说,在应用程序引擎上工作时依赖磁盘数据并不是一个好主意,因为磁盘存储是短暂的(除非您在 flex 上使用永久性磁盘),但即便如此,最好使用云数据库解决方案

App Engine 具有完全只读的文件系统,即不能修改任何文件。 但是,顾名思义,它有 /tmp/ 文件夹来存储临时文件。 它实际上使用 RAM,所以如果数据库很大,这不是一个好主意。

在应用程序启动时,您可以将原始数据库文件复制到 /tmp/ 文件夹,然后从那里使用它。

这行得通。 但是,当应用节点扩展到 0 时,数据库中的所有更改都会丢失。应用的每个节点都有自己的数据库副本,并且节点之间不会共享数据。 如果您需要在应用节点之间共享数据,最好使用 CloudSQL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM