【发布时间】:2015-10-19 10:12:25
【问题描述】:
我一直在关注 Miguel Ginberg 的 Flask 书,我正在考虑如何部署我的应用程序和使用 PostgresDB。
在我的本地生产配置中,我必须手动进入并运行 Role.insert_roles() 才能分配任何角色。
如何在 Heroku 中使用 postgres 执行此操作?实际上,您如何连接到 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 数据库运行开发配置!
【问题讨论】:
-
本教程使用Flask-SQLAlchemy。您必须更改
SQLALCHEMY_DATABASE_URI以指向您的 Postgres 数据库。 -
好的,数据库设置好后,你能在生产环境中运行python shell吗?除非您将角色写入数据库,否则基于您的电子邮件地址环境变量的管理员帐户未正确配置。
python manage.py shell然后role.create_all()。你会如何在 heroku 中做到这一点?
标签: postgresql heroku flask flask-sqlalchemy