Ошибка ImproperlyConfigured` при развертывании Django на Vercel с Supabase PostgreSQL

В настоящее время я пытаюсь развернуть свой проект Django на Vercel, используя Supabase в качестве поставщика базы данных PostgreSQL. Я разделил свои настройки на base.py, development.py и production.py, чтобы управлять конфигурациями, специфичными для конкретной среды.

Проблема:

При попытке миграции базы данных с помощью python manage.py migrate возникает следующая ошибка:

```bash
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured.              Please supply the ENGINE value. Check settings documentation for more details.
```

Детали установки:

  1. Конфигурация базы данных (production.py):
    from decouple import config
    import dj_database_url
    from urllib.parse import urlparse
    
    # Production-specific settings
    DEBUG = True
    
    # Parse the DATABASE_URL to extract components
    url = urlparse(config('DATABASE_URL'))
    
    # Configure your production database (example using PostgreSQL)
    DATABASES = {
        'default': dj_database_url.config(
            default=config('DATABASE_URL')
        )
    }
    
    # configure the database ENGINE to use the Postgres database
    DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql'
    
    # Optional: Additional database settings
    DATABASES['default']['ATOMIC_REQUESTS'] = True
    
    # Cache configuration
    CACHES = {
        'default': {
            'BACKEND': 'django_redis.cache.RedisCache',
            'LOCATION': config('UPSTASH_REDIS_REST_URL'),
            'OPTIONS': {
                'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            }
        }
    }
    
    # Static and media files settings for production
    STATIC_URL = '/static/'
    MEDIA_URL = '/media/'
    
    # Use proper email backend for production (e.g., SMTP)
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_USE_TLS = True
    EMAIL_HOST = config('EMAIL_HOST')
    EMAIL_PORT = config('EMAIL_PORT', default=587)
    EMAIL_HOST_USER = config('EMAIL_HOST_USER')
    EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')
    
    # Cloudinary storage for production
    DEFAULT_FILE_STORAGE = 'cloudinary_storage.storage.MediaCloudinaryStorage'
    
    SECURE_SSL_REDIRECT = True
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    SECURE_HSTS_SECONDS = 60
    SECURE_HSTS_INCLUDE_SUBDOMAINS = True
    SECURE_SSL_REDIRECT = True
    SESSION_COOKIE_SECURE = True
    CSRF_COOKIE_SECURE = True
    SECURE_BROWSER_XSS_FILTER = True
    SECURE_HSTS_PRELOAD = True
    
    DOMAIN = "https://car-zone-dealership.vercel.app
    

2. Настройка среды:

  • DATABASE_URL правильно заданы в файле .env и проверены локально.
  • Необходимые переменные окружения (UPSTASH_REDIS_REST_URL, EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, CLOUD_NAME, API_KEY, API_SECRET) настроены в файле .env.

3. Скриншот ошибки:

сообщение об ошибке, возникшей во время python manage.py migrate. the error message encountered during

в домене Версель error on vercel domain

Request:

Я буду признателен за любые соображения или предложения о том, как устранить эту ошибку ImproperlyConfigured и успешно перенести базу данных моего Django-проекта на Vercel с помощью Supabase PostgreSQL.

Заранее благодарю за помощь!

Я пробовал гуглить об этом и пробовал ответы, включая использование парсера url для получения строки подключения и получения переменных, но все равно ничего не получилось

Это была моя обходная схема, поскольку dj_database_url не работалwork around

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