有没有一种方法可以在Heroku上使用Sqlite3和Django?
香柏栈的文件系统不是只读的。
然而,你仍然不能在其中存储任何数据,因为该文件系统是临时的。
每次应用程序重新启动时,你所写入到应用程序文件系统中的任何内容都将永远消失。
每次添加一个dyno,这两个dynos各自拥有自己的临时系统;一个dyno存储到其临时文件系统中的任何数据对于另一个dyno或者以后可能添加的任何其他dyno都不可用。
Sqlite3会将数据写入本地文件系统。你不能在Heroku上使用Sqlite3。
Heroku提供了一个默认的PostgreSQL安装,由Heroku管理。你可以使用它。
你也可以使用任何第三方托管的云数据库系统,例如Amazon RDS的或Xeround的MySQL,MongoHQ的或MongoLab的MongoDB,或Cloudant的CouchDB-所有这些都可以作为Heroku插件使用。
我不确定这个答案何时过时了,但至少在2013年11月21日之后,sqlite3可以在Heroku上使用:https://devcenter.heroku.com/articles/sqlite3
如果你只是做一个小型的演示应用程序,例如运行1个dyno并且不介意数据库每24小时至少被清除一次,那么它将正常工作。否则,Heroku的帮助文章建议迁移到Postgres。
确保.db文件在你的git目录中的某个地方,而不是在/tmp/中,例如你正在遵循Flask教程应用程序,flaskr。