MySQL: 𠮷(つちよし)
データベース/テーブル utf8mb4にすること
ALTER TABLE customers_customer CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
確認:
$ echo "show variables like 'character%';" | python manage.py dbshell
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8mb3
character_sets_dir /rdsdbbin/mysql-8.0.28.R4/share/charsets/
character_set_system utf8mb3 が問題
接続 を utf8mb4 にすること
django: OPTIONS/charset=utf8mb4
In [1]: from django.conf import settings
In [2]: settings.DATABASES
Out[2]:
{'default': {'ENGINE': 'django.db.backends.mysql',
'HOST': 'prod-db-instance.xxxxxxxx.ap-northeast-1.rds.amazonaws.com',
'NAME': 'coresys_masters',
'USER': 'coresys_masters',
'PASSWORD': 'va0Gaighoo3Paez8',
'OPTIONS': {'charset': 'utf8mb4',
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},
'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0,
'TIME_ZONE': None,
'PORT': '',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None}}}