【问题标题】:Flask on Heroku: unable to use @app.cli.command() decorated functions with heroku cliHeroku 上的 Flask:无法将 @app.cli.command() 修饰函数与 heroku cli 一起使用
【发布时间】:2018-07-15 01:24:25
【问题描述】:

我正在尝试将Flask 应用程序部署到Heroku。我有一个函数用于初始化用@app.cli.command 装饰器包装的Postgres 数据库,因此我可以使用Flask cli 工具执行它。这个函数和flask教程here中初始化sqlite数据库的函数非常相似。

该功能在我的本地机器上运行良好,但不适用于我的 Heroku 部署:

(venv) solomon@prefect trip_test $ heroku run flask initdb
Running flask initdb on ⬢ tripp-exercise... up, run.6637 (Free)
Usage: flask [OPTIONS] COMMAND [ARGS]...

Error: No such command "initdb".

我阅读了一个较旧的 Stack Overflow 问题,我需要将 FLASK_APP 环境变量设置为我的应用程序的位置或我的应用程序的名称。我都试过了,但都没有奏效。这是我尝试设置 FLASK_APP 时使用的命令:

heroku config:set FLASK_APP=trip_test
heroku config:set FLASK_APP=/app

当我尝试运行heroku run flask initdb 时,这两个设置都给出了相同的结果(“错误:没有这样的命令“initdb”。”)。

感谢任何建议或解决方案。

【问题讨论】:

  • 你试过烧瓶迁移吗??它也有助于在生产中初始化数据库
  • 你定义了 procfile 吗?
  • 是的,我有一个 procfile 文件。但是,我刚刚注意到gunicorn 失败了ModuleNotFoundError。我的 procfile 说web: gunicorn trip_test:apptrip_test 是包含我的烧瓶应用程序的文件夹,它在 __init__.py 文件中定义。

标签: python heroku flask environment-variables


【解决方案1】:

我知道答案!:Heroku 没有在暂存环境的变量中设置 $FLASK_APP。添加允许命令行工具运行。只需转到https://dashboard.heroku.com/apps/your-project/settings 并在显示配置变量后将 FLASK_APP 设置为您的应用程序。

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 2017-07-04
    • 2013-07-02
    • 2015-08-17
    • 2017-11-09
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多