使Flask在Heroku上使用Postgres

问题描述 投票:-1回答:2

我一直在关注Miguel Ginberg撰写的Flask书,我正在考虑如何部署我的应用程序并使用PostgresDB。

在我的本地生产配置中,我必须手动进入并运行Role.insert_roles(),然后才能分配任何角色。

我如何使用postgres在Heroku中执行此操作?实际上,你如何连接到postgres数据库?在postgres代码中使用环境变量接管的位置并不是很清楚:

https://github.com/miguelgrinberg/flasky/blob/master/config.py

我有一种感觉我的应用程序只是运行sqlite而且这本书并不是很清楚如何切换。

解决方案:如果已部署到heroku并且尚未更改环境变量:

  • DATABASE_URI到SQLALCHEMY_DATABASE_URI
  • FLASK_CONFIG = heroku
  • FLASKY_ADMIN =您的电子邮件

然后在你的shell中运行:

heroku run python manage.py shell
db.create_all()
db.commit()
Role.insert_roles() 

那么你可能正在从SQLite数据库运行开发配置!

postgresql heroku flask flask-sqlalchemy
2个回答
0
投票

如果您想手动连接,可以直接使用http://initd.org/psycopg/ libarary。 Flask-SQLAlchemy在引擎盖下提供了psycopg,请参阅here - 在您的示例中,继续使用SQLAlchemy可能更容易。更多信息here


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

  1. 安装此扩展:psycopg2

3.更改config.py: config = { ..... 'default':ProductionConfig }

© www.soinside.com 2019 - 2024. All rights reserved.