在Heroku Cedar堆栈上使用Sqlite3
有没有办法在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的附加功能使用。