2016-02-24 70 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上运行。

相关问题