Тестовая база данных для Django + Heroku. Ошибка при создании тестовой базы данных: отказано в разрешении на создание базы данных

Я пытаюсь запустить тесты для моего проекта Django. Я написал этот проект некоторое время назад, тогда у меня были другие настройки и тесты проходили. Сейчас я изменил настройки и развернул его на Heroku с базой данных Heroku Postgres. Все работает отлично, за исключением того, что я не могу запустить тесты. Я перепробовал много разных настроек, но ничего не помогло. В большинстве случаев я получаю эту ошибку: permission denied to create database

Моя последняя настройка соответствует инструкции из этой статьи на Medium. В основном я добавил вторую базу данных Heroku Postgres, добавьте настройки, как показано ниже (но с действительными переменными моих баз данных heroku):

if 'test' in sys.argv:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'd7osdssadag0ugv5',
            'USER': 'lhwwasadqlgjra',
            'PASSWORD': '1524f48a2ce41177c4ssdadasd3a11680b735302d14979d312ff36',
            'HOST': 'ec2-54-75-2326-118.eu-west-1.compute.amazonaws.com',
            'PORT': 5432,
            'TEST': {
                'NAME': 'd7osdssadag0ugv5', 
            }
        }
    }
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'd7hasadas9hqts5',
            'USER': 'nybkduadsdgqot',
            'PASSWORD': 'bb535b9cdsfsdfdsfdsfac54851f267444dd8cc230b2a786ab9f446',
            'HOST': 'ec2-54-247-132-38.eu-west-1.compute.amazonaws.com',
            'PORT': 5432,
            'TEST': {
                'NAME': 'd7hasadas9hqts5',
            }
        }
    }

Затем запустите python manage.py test --keepdb в моем venv. Затем я получаю ошибку:

RuntimeWarning: Normally Django will use a connection to the 'postgres' database to avoid running initialization queries against the production database when it's not needed (for example, when running tests). Django was unable to create a connection to the 'postgres' database and will use the first PostgreSQL database instead.
  RuntimeWarning
Got an error creating the test database: permission denied to create database

Я также попробовал то, что советуется в этой статье

Есть ли у вас идеи, что я могу сделать с этой ошибкой? Я не очень хорошо знаю Django. Я играю с ним время от времени.

Я использую: Python 3.6.9, Django 3.0.3, Heroku Postgresql Hobby Dev

РЕДАКТИРОВАНИЕ:

Я не уверен, что это проблема с моими настройками DATABASES. Теперь, когда я закомментировал все мои настройки относительно DATABASES и запустил python manage.py runserver мой сервер разработки запускается как обычно и у меня есть доступ к базе данных, которую я установил ранее (даже после перезагрузки компьютера). Это похоже на то, что фактические настройки не имеют эффекта (??) Любые мысли?

Django version 3.0.3, using settings 'forumproject.settings'
Starting development server at http://127.0.0.1:8000/

Ок, я выяснил, в чем дело. Настройки моей базы данных не учитывались, даже у меня было DEBUG=True, потому что у меня была эта строка в конце настроек:

# Activate Django-Heroku.
django_heroku.settings(locals())

После того, как я закомментировал это, ошибка permission denied to create database исчезла, и я могу запускать тесты с

python manage.py test --keepdb

Удивительно, как всегда размещение вопроса на stack overflow помогает мне сразу же найти ответ. Я бегал кругами

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