【发布时间】:2016-02-07 14:14:15
【问题描述】:
在 Flask 中,我们可以通过将 CLI 命令传递给 app.cli.command 来定义它
一切都很好,我可以在本地机器上使用python3 -m flask -a appname initdb 运行我的initdb 命令
我已成功将应用上传到 Heroku,除了需要数据库交互的页面外,它可以正常运行。我的 initdb 命令本身应该已经可以与 Heroku 一起使用了,one 有问题,我无法在 Heroku 上运行 initdb。
运行这个heroku run python3 -m flask -a appname initdb 会产生输出:
用法:python -m flask [OPTIONS] COMMAND [ARGS]...
错误:没有这样的命令“initdb”。
虽然使用heroku run python3 -m flask -a appname.py initdb 会产生以下结果:(没有heroku run 的相同命令也会初始化我机器上的数据库:
▸ 找不到那个应用程序。
这很奇怪,因为运行heroku ls 允许我在当前目录上看到appname.py。
【问题讨论】:
-
如果您的应用遵循cookiecutter-flask 约定,则需要set your environment variables:
heroku config:set FLASK_APP=/path/to/autoapp.py -
对于遇到此问题的其他人:如果您在 heroku 中安装应用程序(例如,如果您有 setup.py),您可以运行
heroku config:set FLASK_APP=name_of_your_flask_app并跳过正确路径的麻烦。
标签: heroku flask heroku-postgres