我已經構建了一個使用sqlite(默認數據庫)的Django應用程序,但是我找不到任何允許使用sqlite進行部署的地方。 Heroku只適用於postgresql,並且我花了兩天的時間嘗試切換數據庫,但無法弄清楚,所以我只想用sqlite進行部署。 (這只是一個小的應用程序。)是否可以使用Sqlite部署Django?
幾個問題:
- 在哪裏有,我可以使用SQLite部署?
- 如果是這樣,在哪裏/如何?
我已經構建了一個使用sqlite(默認數據庫)的Django應用程序,但是我找不到任何允許使用sqlite進行部署的地方。 Heroku只適用於postgresql,並且我花了兩天的時間嘗試切換數據庫,但無法弄清楚,所以我只想用sqlite進行部署。 (這只是一個小的應用程序。)是否可以使用Sqlite部署Django?
幾個問題:
SQLite是磁盤上的數據庫,它對於開發目的非常有用,但是像Heroku這樣的服務期望你的服務器端代碼是無狀態的,它作爲後果並不能真正支持SQLite等數據庫。我想你可以讓它工作(假設你在Heroku的磁盤上找到放置SQLite數據庫的地方),但是每次重新部署時你都會經常丟失數據庫的內容。
對於Heroku,我會重定向到this link,它解釋瞭如何在Heroku上使用Django和PostgreSQL。
相信你可以使用SQLite部署......它不是真的建議,但應工作正常,如果你有低的網絡流量
你設置你的數據庫引擎在settings.py到SQLite的...只是確保你可以寫入你爲數據庫指定的路徑
請勿在heroku上使用SQLite
。如docs中所述,您將丟失您的數據:
SQLite在內存中運行,並將其數據存儲備份到磁盤上的文件中。 雖然此策略對開發很有效,但Heroku的Cedar棧 有一個臨時文件系統。您可以寫信給它,並且您可以從中讀取 ,但內容將被定期清除。如果您在上使用Heroku上的SQLite,則每24小時會丟失至少 的整個數據庫。
即使Heroku的磁盤持久運行,SQLite仍然不會 非常適合。由於SQLite不作爲服務運行,因此每個dyno將運行一個單獨的運行副本。每個副本都需要自己的磁盤 備份存儲。這意味着,由於磁盤未同步,因此每個支持您應用程序的dyno都會有一組不同步的數據。
而不是在Heroku上使用SQLite,你可以配置你的應用程序在 Postgres上運行。
這對於Heroku來說並不是真的。 Heroku有一個短暫的文件系統,所以不能假定存儲在其上的任何內容都會被保留。 – mipadi