![](/img/trans.png)
[英]AWS Elastic Beanstalk requires SQLite 3.8.3 or higher for Django Application
[英]Django AWS ElasticBeanstalk Deploy- error deterministic=True requires SQLite 3.8.3 or higher
我試圖部署我的應用程序我的 EB 狀態它返回綠色,所以它正在工作
因此,我在本地 venv 中部署了我的應用程序,我做了python make migrations
python migrate
eb deploy
和eb status
helth 返回綠色,因此可以正常工作,但是當我進入 web 站點時,它返回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
要求.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
設置.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'
步驟零:顯而易見 - 確保您的項目正常工作,並且數據庫具有更新的遷移。
然后按照以下步驟操作:
登錄到您嘗試部署應用程序的雲。 單擊“資源”,如果還沒有,請附加一個 postgres 數據庫。
單擊數據庫資源,查看憑據。
您將獲得諸如主機、數據庫、用戶、端口、密碼、URI 等憑據。
這是我從 Heroku 得到的。 出於安全原因,我隱藏了我的憑據。
我正在復制並粘貼 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 資源提供的正確值填充字段。
您需要 procfile 中的一行文本:
web: gunicorn [PROJECT NAME].wsgi
您的項目名稱將在 wsgi.py 中作為 [PROJECT NAME].settings 找到
重要提示:在 settings.py 腳本中更改數據庫后,刪除舊遷移(它們屬於 SQLite)。 右鍵單擊遷移文件夾,顯示內容,刪除除 __ init __.py 文件之外的所有內容。
然后創建新的遷移,現在將用於 postgres 數據庫:
python manage.py makemigrations
現在再次部署。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.