【解決】 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

事象

コンテナのPythonDjangoをそれぞれ最新化(2.6.0→3.8.0、1.1→3.0)して、
docker build後にrunserverすると以下のエラーが発生。

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

APサーバ側で使用しているMySQLクライアントがDjangoの要求するバージョンより古いっぽい。
なのでバージョンアップする必要がある。

解決策

djnagoの要件としては既存のPyMySQLではなくmysqlclientが推奨されている。
mysqlclientを導入するにはOS側でmariadb-develパッケージが必要となる。

dnf -y install mariadb-devel
pip uninstall PyMySQL
pip install mysqlclient

また、setting.pyでpymysqlを使用していた部分を削除
DATABASE変数はPyMySQLと同じものを使用できるため変更不要。

# import pymysql ※コメントアウト
# pymysql.install_as_MySQLdb() ※コメントアウト

この状態でrunserverを実行

# python manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

April 23, 2020 - 14:56:06
Django version 3.0.5, using settings 'myblog.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C

うまくいった。
無邪気にAP側だけをバージョンアップするのは危険。