在Heroku Cedar堆栈上使用Sqlite3

12 投票
2 回答
3455 浏览
提问于 2025-04-17 04:25

有没有办法在Heroku上用Django使用Sqlite3呢?

2 个回答

0

我不太确定这个回答什么时候变得过时,但至少从2013年11月21日起,sqlite3可以在Heroku上使用:https://devcenter.heroku.com/articles/sqlite3

如果你只是想做一个小的演示应用,比如运行一个dyno(Heroku的计算单元),并且不在乎数据库每24小时会被清空一次,那这样用是没问题的。如果你需要更稳定的数据库,Heroku的帮助文章建议你换成Postgres。

不过要确保你的.db文件在你的git目录里,而不是在/tmp/文件夹里,因为如果你在跟着Flask教程应用flaskr的话,文件可能会在/tmp/里。

22

雪松堆栈的文件系统是不是只读的。

不过,你还是不能在上面存储任何数据,因为这个文件系统是临时的

每当你的应用程序重启时,你在应用程序的文件系统上写的任何东西都会永远消失。

每当你增加一个动态实例(dyno)时,这两个动态实例各自都有自己的临时系统;一个动态实例存储在其临时文件系统中的数据,另一个动态实例是无法访问的,后面你再增加的动态实例也一样。

Sqlite3会把数据写入本地文件系统。你不能在Heroku上使用Sqlite3。

Heroku提供了一个默认的PostgreSQL安装,这个是由Heroku来管理的。你可以使用这个。

你也可以使用任何第三方管理的云数据库系统,比如亚马逊的RDS、Xeround的MySQL、MongoHQ或MongoLab的MongoDB,或者Cloudant的CouchDB——这些都可以作为Heroku的附加功能使用。

撰写回答