Python/Django

[Django] django_mysql Warnings 해결 방법

S0PH1A 2019. 8. 16. 10:53
반응형

[Django] django_mysql Warnings 해결 방법


1. MySQL Strict Mode is not set for database connection 'default'

WARNINGS:
?: (django_mysql.W001) MySQL Strict Mode is not set for database connection 'default'
        HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w001-strict-mode
  • settings.py 에서 init_command 옵션에 SET innodb_strict_mode=1를 추가하면 된다.
    # settings.py
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'USER': 'root',
          'PASSWORD': '1234',
          'HOST': 'localhost',
          'PORT': '3306',
          'NAME': '',
          'OPTIONS': {
              'init_command': 'SET innodb_strict_mode=1',
          }
      }
    }

2. The character set is not utf8mb4 for database connection 'default'

WARNINGS:
?: (django_mysql.W003) The character set is not utf8mb4 for database connection 'default'
        HINT: The default 'utf8' character set does not include support for all Unicode characters. It's strongly recommended you move to use 'utf8mb4'. See: https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w003-utf8mb4
  • settings.py 에서 charset으로 character를 utf8mb4로 설정해 주면 된다.
    # settings.py
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'USER': 'root',
          'PASSWORD': '1234',
          'HOST': 'localhost',
          'PORT': '3306',
          'NAME': '',
          'OPTIONS': {
              'charset': 'utf8mb4',
          }
      }
    }



[참고] https://django-mysql.readthedocs.io/en/latest/checks.html#django-mysql-w001-strict-mode

반응형