亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用 sqlite3 將數據庫保存在磁盤上 - Python

無法使用 sqlite3 將數據庫保存在磁盤上 - Python

繁星淼淼 2023-05-16 14:21:36
我將 sqlite3 ( import sqlite3 ) 與 python 一起使用,但我無法將 db 文件保存在磁盤上(在我的例子中,在 heroku 上,在/app/內)。當我運行這個時沒有錯誤:c = sqlite3.connect(':memory:')    c.execute('CREATE TABLE users (userid int, isbot boolean);')    c.execute("INSERT INTO users VALUES (000000000, 'test');")    c.commit()    c2 = sqlite3.connect('/app/bot.db')    with c2:      for line in c.iterdump():        if line not in ('BEGIN;', 'COMMIT;'): # let python handle the transactions          c2.execute(line)    c2.commit()
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

我不相信 heroku 支持這種類型的文件

在他們的網站上找到了這個。

磁盤備份存儲 SQLite 在內存中運行,并將其數據存儲在磁盤上的文件中。雖然此策略適用于開發,但 Heroku 的 Cedar 堆棧具有臨時文件系統。您可以寫入,也可以從中讀取,但內容會定期清除。如果你在 Heroku 上使用 SQLite,你將至少每 24 小時丟失一次整個數據庫。

即使 Heroku 的磁盤是持久的,運行 SQLite 仍然不是一個好的選擇。由于 SQLite 不作為服務運行,每個 dyno 將運行一個單獨的運行副本。這些副本中的每一個都需要自己的磁盤備份存儲。這意味著為您的應用程序提供動力的每個測力計都會有一組不同的數據,因為磁盤不同步。

您可以將您的應用程序配置為在 Postgres 上運行,而不是在 Heroku 上使用 SQLite。


查看完整回答
反對 回復 2023-05-16
  • 1 回答
  • 0 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號