我已经构建了一个使用sqlite(默认数据库)的Django应用程序,但我找不到允许使用sqlite进行部署的任何地方。 Heroku只适用于postgresql,我花了两天时间尝试切换数据库而无法搞清楚,所以我想用sqlite进行部署。 (这只是一个小应用程序。)
几个问题:
答案 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 ...只需确保您对数据库指定的路径具有写入权限