Heroku django.core.exceptions.ImproperlyConfigured: Установите переменную окружения SECRET_KEY

Я пытаюсь запустить команду django на своем производственном сервере heroku, но получаю следующую ошибку:

введите описание изображения здесь

Примечание: Эта же команда отлично работает в моей локальной среде разработки.

Я предпринял следующие шаги:

  1. ssh onto my django server:

    heroku ps:exec -a library-backend

  2. I run my custom command:

    python manage.py test_command

  3. Receive error above

Мои переменные окружения установлены в моем файле settings.py следующим образом:

import environ

# Setting environment variables
env = environ.Env(DEBUG=(bool, False))
environ.Env.read_env()
DEBUG = env('DEBUG')
SECRET_KEY = env('SECRET_KEY')
DATABASE_URL = env('DATABASE_URL')

Мое приложение django работает нормально на сервере heroku. Я получаю эту ошибку, только когда пытаюсь запустить пользовательскую команду управления django.

Кто-нибудь видит, где я ошибаюсь?

Для справки, команда управления задается в library/management/commands/test_command.py:

from django.core.management.base import BaseCommand

class Command(BaseCommand):

    def handle(self, *args, **options):
      print("Testing management command")

Ок, наконец-то я разобрался с этим с помощью подсказки в правильном направлении из комментария. Когда вы запускаете:

heroku ps:exec -a <myapp>

Heroku предоставит вам сессию ssh с доступом к файлам и папкам, но не установит никаких переменных окружения (например, SECRET_KEY или DATABASE_URL)

Чтобы получить сеанс ssh с установленными переменными окружения, вместо этого используйте:

heroku run bash -a <myapp>

Теперь вы можете запустить команду django и не получите никаких ошибок ImproperlyConfigured.

Вернуться на верх