是否可以使用Sqlite部署Django?

时间:2016-02-24 23:23:40

标签: python django postgresql sqlite heroku

我已经构建了一个使用sqlite(默认数据库)的Django应用程序,但我找不到允许使用sqlite进行部署的任何地方。 Heroku只适用于postgresql,我花了两天时间尝试切换数据库而无法搞清楚,所以我想用sqlite进行部署。 (这只是一个小应用程序。)

几个问题:

  • 我可以使用sqlite部署任何地方吗?
  • 如果是,在哪里/如何?

3 个答案:

答案 0 :(得分:2)

SQLite是磁盘上的一个数据库,它对于开发目的非常有用,但是像Heroku这样的服务期望您的服务器端代码是无状态的,因此实际上并不允许像SQLite这样的数据库。我想你可以让它工作(如果你在Heroku的磁盘上找到了放置SQLite数据库的位置),但每次重新部署时你都会丢失数据库的内容。

对于Heroku,我会将你重定向到this link,它解释了如何在Heroku上使用Django和PostgreSQL。

答案 1 :(得分:1)

不要在heroku上使用SQLite。如docs中所述,您将丢失数据:

  

SQLite在内存中运行,并将其数据存储备份在磁盘上的文件中。   虽然这种策略适用于开发,但是Heroku的Cedar堆栈   有一个短暂的文件系统。你可以写信给它,你可以阅读   从中,但内容将定期清除。如果你是   在Heroku上使用SQLite,至少会丢失整个数据库   每24小时一次。

     

即使Heroku的磁盘持续运行,SQLite仍然不会   很合适。由于SQLite不作为服务运行,因此每个dyno都会   运行单独的运行副本。每个副本都需要自己的磁盘   支持商店。这意味着每个dyno为你的应用程序提供动力   由于磁盘未同步,因此具有不同的数据集。

     

您可以将应用配置为运行,而不是在Heroku上使用SQLite   Postgres的。

答案 2 :(得分:-1)

确定你可以使用sqlite进行部署......不是真的推荐它,但如果你的网络流量很低,应该可以正常工作

您在settings.py中将数据库引擎设置为sqlite ...只需确保您对数据库指定的路径具有写入权限