Принуждение sql_mode к "STRICT_TRANS_TABLES" по-прежнему получает предупреждение Django - PullRequest
0 голосов
/ 06 июля 2019

Я использую Django 2.1.3, pymysql 0.9.2, mysql 5.7, python3.5

sql_mode in mysql:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

db setting in django:

DATABASES = {

  'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...,
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4'
         },
}

И я всегда получаю предупреждение вот так:

/venv3.5/lib/python3.5/site-packages/pymysql/cursors.py:170: Warning: (3135, "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.")
  result = self._query(query)

/venv3.5/lib/python3.5/site-packages/pymysql/cursors.py:170: Warning: (3090, "Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release.")
  result = self._query(query)

Почему я получил предупреждение, как указано выше?

Любые комментарии приветствуются. большое спасибо.

1 Ответ

1 голос
/ 06 июля 2019

Попробуйте:

DATABASES = {
  'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...,
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'",
            'charset': 'utf8mb4'
         },
}

Вы также можете увидеть предупреждения - Контроль предупреждений .

...