Postgresql 在Heroku上使用Postgres

Postgresql 在Heroku上使用Postgres,postgresql,heroku,flask,flask-sqlalchemy,Postgresql,Heroku,Flask,Flask Sqlalchemy,我一直在关注Miguel Ginberg的Flask书,我正在考虑如何部署我的应用程序并使用PostgresDB 在本地生产配置中,我必须手动进入并运行Role.insert_roles(),然后才能分配任何角色 我在Heroku和博士后如何做到这一点?事实上,如何连接到postgres db?目前还不清楚postgres在代码中使用环境变量的位置: 我有一种感觉,我的应用程序只是在运行sqlite,而这本书并不清楚如何切换 解决方案: 如果您已部署到heroku,且未更改环境变量: 数据库

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

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

我在Heroku和博士后如何做到这一点?事实上,如何连接到postgres db?目前还不清楚postgres在代码中使用环境变量的位置:

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

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

  • 数据库\u URI到SQLALCHEMY\u数据库\u URI
  • FLASK_CONFIG=heroku
  • FLASKY_ADMIN=您的电子邮件
然后在你的壳中运行:

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

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

如果您想手动连接,可以直接使用图书馆。提供在引擎盖下使用psycopg,请参见-在您的示例中,继续使用SQLAlchemy可能更容易。更多信息。

我也遇到了同样的问题,解决方法如下:
1.设置数据库
$:heroku插件:创建heroku postgresql bobby dev
……
添加数据库\u url:
$:hero配置-s | grep HEROKU-PSOTGRESQL
(然后显示HEROKU_POSTGRESQL_RED_URL=…)
$:heroku pg:升级heroku-POSTGRESQL-RED

  • 安装此扩展名:psycopg2
  • 3.更改config.py:
    配置={
    ..…
    “默认”:ProductionConfig

    }

    本教程使用。您必须更改
    SQLALCHEMY\u DATABASE\u URI
    以指向您的Postgres数据库。好的,当数据库设置正确时,您可以在产品中运行python shell吗?除非将角色写入数据库,否则基于电子邮件地址的环境变量的管理员帐户配置不正确
    python manage.py shell
    然后
    role.create_all()
    。在heroku中如何实现这一点?flask教程为具有flask SQL alchemy对象的shell提供了一个命令行选项。需要在此shell中运行Role.insert_roles(),以便每个DB将用户角色写入表中。这本书没有解释如何在heroku做到这一点。