Djangoで作成したアプリをHerokuを使ってデプロイしています。
DBはMySQLを使用します。
#発生している問題・エラーメッセージ
下記のmigrateコマンドを実行させると、エラーがでます。
$ heroku run python manage.py migrate --app アプリ名
MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
MySQLに接続できていないということだと思いますが、解決策がわかりません。
#該当のソースコード
setting.py
1 2import os 3 4# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 5BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 6 7 8# Quick-start development settings - unsuitable for production 9# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ 10 11# SECURITY WARNING: keep the secret key used in production secret! 12SECRET_KEY = 'or_##f=%3xl@-q23yug2*hva@ft7%p^h2r%#r7f+)f*7+d)%*6' 13 14# SECURITY WARNING: don't run with debug turned on in production! 15DEBUG = False 16 17ALLOWED_HOSTS = ["*"] 18 19 20# Application definition 21 22INSTALLED_APPS = [ 23 'django.contrib.admin', 24 'django.contrib.auth', 25 'django.contrib.contenttypes', 26 'django.contrib.sessions', 27 'django.contrib.messages', 28 'django.contrib.staticfiles', 29 'django.contrib.humanize', 30 'website', 31] 32 33MIDDLEWARE = [ 34 'django.middleware.security.SecurityMiddleware', 35 'django.contrib.sessions.middleware.SessionMiddleware', 36 'django.middleware.common.CommonMiddleware', 37 'django.middleware.csrf.CsrfViewMiddleware', 38 'django.contrib.auth.middleware.AuthenticationMiddleware', 39 'django.contrib.messages.middleware.MessageMiddleware', 40 'django.middleware.clickjacking.XFrameOptionsMiddleware', 41 'whitenoise.middleware.WhiteNoiseMiddleware', 42] 43 44ROOT_URLCONF = 'django_website.urls' 45 46TEMPLATES = [ 47 { 48 'BACKEND': 'django.template.backends.django.DjangoTemplates', 49 'DIRS': [], 50 'APP_DIRS': True, 51 'OPTIONS': { 52 'context_processors': [ 53 'django.template.context_processors.debug', 54 'django.template.context_processors.request', 55 'django.contrib.auth.context_processors.auth', 56 'django.contrib.messages.context_processors.messages', 57 ], 58 }, 59 }, 60] 61 62WSGI_APPLICATION = 'django_website.wsgi.application' 63 64 65# Database 66# https://docs.djangoproject.com/en/3.0/ref/settings/#databases 67 68DATABASES = { 69 'default': { 70 'ENGINE': 'django.db.backends.mysql', 71 'NAME': 'DB名', 72 'USER': 'USER名', 73 'PASSWORD': 'パスワード', 74 'HOST': 'HOST名', 75 'PORT': 'ポート' 76 } 77} 78 79 80# Password validation 81# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators 82 83AUTH_PASSWORD_VALIDATORS = [ 84 { 85 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 86 }, 87 { 88 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 89 }, 90 { 91 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 92 }, 93 { 94 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 95 }, 96] 97 98 99# Internationalization 100# https://docs.djangoproject.com/en/3.0/topics/i18n/ 101 102LANGUAGE_CODE = 'en-us' 103 104TIME_ZONE = 'Asia/Tokyo' 105 106USE_I18N = True 107 108USE_L10N = True 109 110USE_TZ = True 111 112 113# Static files (CSS, JavaScript, Images) 114# https://docs.djangoproject.com/en/3.0/howto/static-files/ 115 116STATIC_URL = '/assets/' 117STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 118 119 120STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
requirments
1django 2whitenoise 3gunicorn 4mysqlclient
Procfile
1web: gunicorn django_website.wsgi
デプロイ自体はできておりMySQLに関係しないページは問題なく開来ますが、MySQLが関係あるページでは"Server Error (500)"とエラーが出ます。
ローカルでは動きます。
setting.pyに修正が必要でしょうか。詳しい方ご教授ください。
あなたの回答
tips
プレビュー