有没有办法在Heroku上使用Sqlite3和Django?
答案 0 :(得分:22)
雪松堆栈的文件系统不是只读。
但是,您仍然不能在其上存储任何数据,因为文件系统是 ephemeral 。
每当您的应用程序重新启动时,无论您写入应用程序的文件系统,都会永远消失。
任何时候你添加一个dyno,这两个dynos都有自己的短暂系统;一个dyno存储到其短暂文件系统的任何数据都不可用于其他dyno或您稍后可能添加的任何其他dyno。
Sqlite3将数据写入本地文件系统。你不能将Sqlite3与Heroku一起使用。
Heroku提供默认的PostgreSQL安装,Heroku管理。你可以使用它。
您还可以使用任何第三方管理的云数据库系统,例如Amazon RDS'或Xeround的MySQL,MongoHQ或MongoLab的MongoDB或Cloudant的CouchDB - 所有这些都可以作为Heroku插件使用。
答案 1 :(得分:0)
我不确定这个答案何时过时,但截至2013年11月21日,sqlite3可用于heroku:https://devcenter.heroku.com/articles/sqlite3
如果您只是做一个小型的演示应用程序,它可以正常工作,例如运行1 dyno并不关心数据库每24小时至少擦除一次。如果没有,那么heroku帮助文章建议迁移到Postgres。
确保.db文件位于某个位置的git目录中,而不是在/ tmp /中,因为例如,如果您正在关注Flask tutorial app, flaskr。