Col*_*nic 1 python pip heroku requirements.txt
我正在编写一个Python Flask应用程序来部署在Heroku上.它将使用数据库.对于本地开发,我想使用Sqlite,但是当部署到Heroku时我想使用Postgresql.我怎样才能做到这一点?
我被困了,因为我不知道如何在我的盒子和Heroku服务器之间需要一套不同的包.
这是一个Ruby应用程序,我会写在我的 Gemfile
gem "pg", :group => :production
gem "sqlite3", :group => :development
Run Code Online (Sandbox Code Playgroud)
然后Bundler将在开发和生产中安装适当的包.但我不知道Python的pip有任何类似的工作流程
那么,你有两件事需要解决.
首先,requirements.txt
这不是一个问题.您可以将所有需求都放在同一个requirements.txt
文件中,安装两个数据库绑定都不会造成任何损害.但是,如果要分离,只需requirements.txt
用于部署和requirements-dev.txt
本地开发.
更重要的是DB设置本身,为此你有一个单线解决方案:
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get(
'DATABASE_URL', 'sqlite:////tmp/test.db')
Run Code Online (Sandbox Code Playgroud)
既然DATABASE_URL
是在Heroku上设置,而不是在本地设置(确保是这种情况),os.environ.get
则无法找到它,因此恢复为默认值,即sqlite连接字符串.