0

我正在尝试在我的 heroku 生产服务器上运行 django 命令,但出现以下错误:

在此处输入图像描述

注意:相同的命令在我的本地开发环境中运行良好。

我采取了以下步骤:

  1. ssh 到我的 django 服务器上:

    heroku ps:exec -a library-backend

  2. 我运行我的自定义命令:

    python manage.py test_command

  3. 收到上面的错误

我的环境变量在我的 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")
4

1 回答 1

0

好的,所以我终于从评论中找到了正确方向的提示。当你运行时:

heroku ps:exec -a <myapp>

Heroku 将为您提供一个可以访问文件和文件夹的 ssh 会话,但不会设置您的任何环境变量(如 SECRET_KEY 或 DATABASE_URL)

要获得设置了环境变量的 ssh 会话,请改为使用:

heroku run bash -a <myapp>

现在您可以运行您的 django 命令,并且不会收到任何 ImproperlyConfigured 错误。

于 2021-08-28T13:25:55.650 回答