Heroku django.core.exceptions.ImproperlyConfigured: Установите переменную окружения SECRET_KEY
Я пытаюсь запустить команду django на своем производственном сервере heroku, но получаю следующую ошибку:
Примечание: Эта же команда отлично работает в моей локальной среде разработки.
Я предпринял следующие шаги:
ssh onto my django server:
heroku ps:exec -a library-backend
I run my custom command:
python manage.py test_command
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.