[英]sqlite3.OperationalError: database is locked - non-threaded application
[英]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.