Как raise ImproperlyConfigured("settings.DATABASES неправильно сконфигурирован. при развертывании на железной дороге

Эй, ребята, я следую этому руководству https://dev.to/mr_destructive/django-postgresql-deployment-on-railway-app-d54 о том, как развернуть мой проект django на железной дороге. Я установил все локально, все работает, но когда я развертываю, приложение падает, возвращая эту ошибку

File "/home/olaneat/Desktop/files/project/django/job/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 55, in has_table
    with self.connection.cursor() as cursor:
  File "/home/olaneat/Desktop/files/project/django/job/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/olaneat/Desktop/files/project/django/job/lib/python3.8/site-packages/django/db/backends/base/base.py", line 259, in cursor
    return self._cursor()
  File "/home/olaneat/Desktop/files/project/django/job/lib/python3.8/site-packages/django/db/backends/dummy/base.py", line 20, in complain
    raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

может кто-нибудь помочь

Используйте эту настройку для postgresql:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'mydatabase',
    'USER': 'mydatabaseuser',
    'PASSWORD': 'mypassword',
    'HOST': '127.0.0.1',
    'PORT': '5432',
}

}

REF: https://docs.djangoproject.com/en/4.1/ref/settings/#databases

Вам необходимо добавить соответствующие имена переменных окружения в настройки переменных железнодорожного приложения. Для добавления переменных нажмите + New Variable, и вам будет предложено ввести имя переменной и ее значение. Скопируйте URL подключения к базе данных из настроек службы PostgreSQL и вставьте в значение переменных приложения DATABASE_URL

enter image description here

enter image description here

Если вы считаете, что этот метод вам не подходит, вы также можете попробовать второй подход. Вы можете добавить URL базы данных в виде одной строки, это также является альтернативой, вместо того чтобы указывать все отдельные поля.

# pip install dj_database_url python-dotenv

import dj_database_url
import os
from dotenv import load_dotenv

load_dotenv(os.path.join(BASE_DIR, '.env'))

DATABASE_URL = os.getenv("DATABASE_URL")

DATABASES = {
    "default": dj_database_url.config(default=DATABASE_URL, conn_max_age=1800),
}
Вернуться на верх