2016-02-24 73 views
-3

我已經構建了一個使用sqlite(默認數據庫)的Django應用程序,但是我找不到任何允許使用sqlite進行部署的地方。 Heroku只適用於postgresql,並且我花了兩天的時間嘗試切換數據庫,但無法弄清楚,所以我只想用sqlite進行部署。 (這只是一個小的應用程序。)是否可以使用Sqlite部署Django?

幾個問題:

  • 在哪裏有,我可以使用SQLite部署?
  • 如果是這樣,在哪裏/如何?

回答

2

SQLite是磁盤上的數據庫,它對於開發目的非常有用,但是像Heroku這樣的服務期望你的服務器端代碼是無狀態的,它作爲後果並不能真正支持SQLite等數據庫。我想你可以讓它工作(假設你在Heroku的磁盤上找到放置SQLite數據庫的地方),但是每次重新部署時你都會經常丟失數據庫的內容。

對於Heroku,我會重定向到this link,它解釋瞭如何在Heroku上使用Django和PostgreSQL。

-1

相信你可以使用SQLite部署......它不是真的建議,但應工作正常,如果你有低的網絡流量

你設置你的數據庫引擎在settings.py到SQLite的...只是確保你可以寫入你爲數據庫指定的路徑

+0

這對於Heroku來說並不是真的。 Heroku有一個短暫的文件系統,所以不能假定存儲在其上的任何內容都會被保留。 – mipadi

1

請勿在heroku上使用SQLite。如docs中所述,您將丟失您的數據:

SQLite在內存中運行,並將其數據存儲備份到磁盤上的文件中。 雖然此策略對開發很有效,但Heroku的Cedar棧 有一個臨時文件系統。您可以寫信給它,並且您可以從中讀取 ,但內容將被定期清除。如果您在上使用Heroku上的SQLite,則每24小時會丟失至少 的整個數據庫。

即使Heroku的磁盤持久運行,SQLite仍然不會 非常適合。由於SQLite不作爲服務運行,因此每個dyno將運行一個單獨的運行副本。每個副本都需要自己的磁盤 備份存儲。這意味着,由於磁盤未同步,因此每個支持您應用程序的dyno都會有一組不同步的數據。

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

相關問題