我一直关注Miguel Ginberg撰写的Flask一书,我正在思考如何部署我的应用程序并使用PostgresDB。
在我的本地生产配置中,我必须手动进入并运行Role.insert_roles()才能分配任何角色。
如何使用postgres在Heroku中执行此操作?实际上,你如何连接到postgres数据库?在postgres代码中使用环境变量接管的位置并不是很清楚:
https://github.com/miguelgrinberg/flasky/blob/master/config.py
我有一种感觉我的应用程序只是运行sqlite而且这本书并不清楚如何切换。
解: 如果您已部署到heroku并且尚未更改环境变量:
然后在你的shell中运行:
heroku run python manage.py shell
db.create_all()
db.commit()
Role.insert_roles()
那么你可能正在从SQLite数据库运行开发配置!
答案 0 :(得分:0)
如果您想手动连接,可以直接使用http://initd.org/psycopg/图书馆。 Flask-SQLAlchemy在引擎盖下提供了psycopg,请参阅here - 在您的示例中,继续使用SQLAlchemy可能更容易。更多信息here。
答案 1 :(得分:0)
我有同样的问题并解决如下:
1.配置数据
$:heroku addons:创建heroku-postgresql bobby-dev
......
添加database_url:
$:hero config -s | grep HEROKU-PSOTGRESQL
(然后显示HEROKU_POSTGRESQL_RED_URL = .....)
$:heroku pg:推广HEROKU-POSTGRESQL-RED
3.更改config.py:
config = {
.....
'default':ProductionConfig
}