Django: エラー解決法 “raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; 〜) django.core.exceptions.ImproperlyConfigured: 〜”

Django 2.2のリリースに伴い、早速既存のWebアプリの互換性チェックの為にライブラリのversion updateを行ったが、下記のエラーメッセージが出力されマイグレーションが異常終了。

事象発生時のエラーメッセージ

発生環境

macOS v10.14.4, Python 3.7, Django 2.2, PyMySQL 0.9.3

原因

メッセージの通り、mysqlclientのバージョンが低いから。今更ながらDjango側の推奨MySQL (MariaDB)ライブラリはPyMySQLではなくmysqlclientであることを知る。

公式ドキュメント:Databases | Django documentation | Django

参考までに両ライブラリの記事公開時点の最新バージョンを掲載。

解決法

公式推奨のライブラリに切り替えるべく、PyMySQLのアンインストール及びmysqlclientのインストールを以下のコマンドで行う。

仮にmysqlclientのインストールでエラーが発生為た場合は下記の記事をご参照。
Django: macOSでのpip install mysqlclient エラーの解決法

記事公開時点での確認環境は以下の通り。

ライブラリのインストール完了後、各ファイル(※1)で宣言されたpymysqlに関わるステートメント(※2)を削除していく。
※1:

  1. manage.py
  2. プロジェクトフォルダ名/__init__.py

※2:

Djangoライブラリのupdate後はmigrationを実施する。ここで問題なければ事象解消と言って良い。

仮にmigrationを実施しない場合はrunserver実行時に下記の警告が発生する為。

尚、settings.pyのDATABASES変数はPyMySQLと同値で問題ない。