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'
Шаг нулевой: Очевидное - убедитесь, что ваш проект работает, и что в базе данных есть обновленные миграции.
Затем выполните следующие шаги:
Войдите в облако, где вы пытаетесь развернуть свое приложение. Нажмите "resources", прикрепите базу данных postgres, если вы еще не сделали этого.
.Нажмите на ресурс базы данных, просмотрите учетные данные.
Вам будут предоставлены учетные данные, такие как Host, Database, User, Port, Password, URI.
Вот что я получил от Heroku. Я скрываю свои учетные данные в целях безопасности.
- Отмените формат базы данных для SQLite в вашем файле settings.py и используйте формат базы данных Oracle/postgres следующим образом:

Я копирую и вставляю пример из руководства 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 в облаке.
- Убедитесь, что у вас установлен "gunicorn" и создайте "procfile" в том же уровне каталога, что и файл requirements.txt. .
Вам нужна одна строка текста в procfile:
web: gunicorn [PROJECT NAME].wsgi
Имя вашего проекта будет найдено в wsgi.py как [PROJECT NAME].settings

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