Запуск команд flask cli на Heroku

В Flask мы можем определить команды CLI, передав их app.cli.command

Все в порядке, и я могу запустить свою initdb команду на своем локальном компьютере с помощью python3 -m flask -a appname initdb

Я успешно загрузил приложение в Heroku, оно работает и работает, за исключением страниц, требующих взаимодействия с базой данных. Моя команда initdb уже должна работать с Heroku, с одной проблемой, я не могу запустить initdb на Heroku.

Запуск этого heroku run python3 -m flask -a appname initdb дает результат:

Использование: python -m flask [ОПЦИИ] КОМАНДА [АРГИИ] ...

Ошибка: нет такой команды initdb.

При использовании heroku run python3 -m flask -a appname.py initdb получается следующее: (та же команда без heroku run также инициализирует базу данных на моей машине:

▸ Не удалось найти это приложение.

Это странно, поскольку запуск heroku ls позволяет мне видеть appname.py в текущем каталоге.


person Secret    schedule 06.11.2015    source источник
comment
Если ваше приложение соответствует cookiecutter-flask, вам необходимо установить переменные среды : heroku config:set FLASK_APP=/path/to/autoapp.py   -  person brennan    schedule 23.03.2017
comment
Всем, у кого возникла эта проблема: если вы устанавливаете свое приложение в heroku (например, если у вас есть setup.py), вы можете просто запустить heroku config:set FLASK_APP=name_of_your_flask_app и пропустить проблемы с правильным путем.   -  person fgblomqvist    schedule 20.08.2017


Ответы (1)


Если вы столкнулись с этой ошибкой:

Не удалось найти это приложение.

Это потому, что вы передали неверное имя приложения как параметр -a, --app для heroku run. Запустите heroku apps, чтобы найти допустимые имена, и повторите попытку.

person Nino Filiu    schedule 25.11.2018