我一直在关注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数据库运行开发配置!
如果您想手动连接,可以直接使用http://initd.org/psycopg/ libarary。 Flask-SQLAlchemy在引擎盖下提供了psycopg,请参阅here - 在您的示例中,继续使用SQLAlchemy可能更容易。更多信息here。
我有同样的问题,并解决如下: 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 }