Django AWS ElasticBeanstalk Deploy- error deterministic=True требуется SQLite 3.8.3 или выше

Я пытаюсь развернуть свое приложение, мой статус EB возвращает зеленый цвет, так что все работает

So, i deployed my application in my local venv i did python make migrations python migrate eb deploy and eb status

Helth возвращает зеленый цвет, поэтому он работает, но когда я захожу на сайт, он возвращает deterministic=True requires SQLite 3.8.3 or higher

Примечание: локально он работает просто отлично

django.config:

option_settings:
    aws:elasticbeanstalk:container:python:
        WSGIPath: store.wsgi:application

команды, которые я выполнил для создания моего проекта:

python manage.py mamemigrations
python manage.py migrate 
python manage.py createsuperuser
eb init python-3.8 Naameofmyproject
eb create Nameofmyproject

Requirments.txt:

asgiref==3.5.0
autopep8==1.6.0
certifi==2021.10.8
charset-normalizer==2.0.12
dj-database-url==0.5.0
Django==4.0.3
django-anymail==8.5
django-autoslug==1.9.8
django-crispy-forms==1.14.0
django-environ==0.8.1
django-model-utils==4.2.0
idna==3.3
Pillow==9.1.0
psycopg2-binary==2.9.3
pycodestyle==2.8.0
python-dateutil==1.5
requests==2.27.1
six==1.16.0
sqlparse==0.4.2
stripe==2.70.0
toml==0.10.2
tzdata==2022.1
urllib3==1.26.9

settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}


STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'
STATICFILES_DIRS = [BASE_DIR / 'templates/static']

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

CART_SESSION_ID = 'cart'
AUTH_USER_MODEL = 'account.UserBase'
LOGIN_REDIRECT_URL = '/account/dashboard'
LOGIN_URL = '/account/login/'

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

Шаг нулевой: Очевидное - убедитесь, что ваш проект работает, и что в базе данных есть обновленные миграции.

Затем выполните следующие шаги:

  1. Войдите в облако, где вы пытаетесь развернуть свое приложение. Нажмите "resources", прикрепите базу данных postgres, если вы еще не сделали этого.

    .
  2. Нажмите на ресурс базы данных, просмотрите учетные данные.

Вам будут предоставлены учетные данные, такие как Host, Database, User, Port, Password, URI.

enter image description here

Вот что я получил от Heroku. Я скрываю свои учетные данные в целях безопасности.

  1. Отмените формат базы данных для SQLite в вашем файле settings.py и используйте формат базы данных Oracle/postgres следующим образом: enter image description here

Я копирую и вставляю пример из руководства django (который вы можете скопировать и вставить в файл settings.py):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'xe',
        'USER': 'a_user',
        'PASSWORD': 'a_password',
        'HOST': 'dbprod01ned.mycompany.com',
        'PORT': '1540',
    }
}

Установите в поле ENGINE значение:

'ENGINE': 'django.db.backends.postgresql',

Источник: https://docs.djangoproject.com/en/4.0/ref/databases/

Заполните поля правильными значениями, которые были предоставлены ресурсом postgres в облаке.

  1. Убедитесь, что у вас установлен "gunicorn" и создайте "procfile" в том же уровне каталога, что и файл requirements.txt.
  2. .

Вам нужна одна строка текста в procfile:

web: gunicorn [PROJECT NAME].wsgi

Имя вашего проекта будет найдено в wsgi.py как [PROJECT NAME].settings enter image description here

ВАЖНО: После изменения базы данных в скрипте settings.py удалите старые миграции (они относятся к SQLite). Щелкните правой кнопкой мыши на папке migrations, раскройте содержимое, удалите все, кроме файла __ init __.py.

Затем создайте новые миграции, которые теперь будут для базы данных postgres:

python manage.py makemigrations

Теперь разверните снова.

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