manage.pyでsql modesエラーが出る場合のかわし方

環境
Python 3.7.7
Django 3.0.5
x-server(linuxbrew + pipenv)

現象
manage.pyを実行すると以下のエラーが出る。おそらく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)

解決方法

x-serverなんでmy.confを触れない。
settings.pyのmysqlの設定に以下を追加

DATABASES = {
‘default’: {
‘ENGINE’:’django.db.backends.mysql’,
‘NAME’:'{database_name}’,
‘USER’:'{user_name}’,
‘PASSWORD’:{password}’,
‘HOST’:’mysql00000.xserver.jp’,
‘PORT’:’3306′,
‘OPTIONS’: {
‘init_command’: “SET sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO'”,
},
}
}

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です