今回は、DjangoのMySQLの接続設定と、
Django標準のmanage.pyを利用して、
DB(MySQL)をマイグレーションする方法をメモしておこうと思います。
尚、Djangoのプロジェクトは、以下のメモの要領で作成済みの前提で行います。
目次
環境・モジュール
- Python version:3.8.1
- Django version:3.0.3
- pip:20.1.1
- mysqlclient:2.0.1
- PyCharm 2019.3.3 (Community Edition)
Runtime version: 11.0.5+10-b520.38 x86_64
Django DB設定
DjangoのDB接続設定は、settings.pyで行います。
デフォルトだとSqlite用の設定になっていると思いますので、
MySQL用の内容に修正します。
settings.py 設定内容
修正箇所は、Djangoプロジェクト名/settings.pyファイルのDATABASESの部分です。
DBの接続情報を元にそれぞれ設定します。
設定項目
- ENGINE:django.db.backends.mysql
- NAME:DB名
- USER:DBユーザー名
- PASSWORD:ユーザーパスワード
- HOST:ホスト名
- PORT:ポート名
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'Django_test_02', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '8889', } }
※Workbenchで接続情報を確認するときには、以下のような形でよく確認します。
DB(MySQL) マイグレーション実行
以下のメモは、Djangoの管理画面用のDBテーブル整備を、
Djangoのマイグレーション機能を利用して行う内容になっています。
マイグレーションファイル作成
通常であれば、作成するDBテーブルに対応したモデルを作成してから、
マイグレーションファイルを作成しますが、
今回は、管理画面用のテーブルだけ作成したいので、モデルは一切作成せずに、以下のコマンドを実行します。
python manage.py makemigrations
※python2とpython3が共存している場合は、python3と指定します。
マイグレーション実行
以下のコマンドでマイグレーションを実行します。
python manage.py migrate
マイグレーションを実行後に、DBを確認するとテーブルが作成されています。
マイグレーション トラブルシュート
マイグレーション時に、以下の様なエラーメッセージが表示された場合、
pythonコマンドのバージョン指定が間違っているか、
mysqlclientなどのツールが不足している可能性があります。
Did you install mysqlclient?
パッケージ不足対応
pipを利用してインストールします。
pip install パッケージ名
※pipのバージョンが混在している場合は、pip3など指定して実行する必要があります。
基本的には、エラーメッセージで表示されたパッケージをインストールすれば解決します。
インストールされているパッケージ一覧を確認したい場合には、以下のコマンドで確認できます。
pip list
今回のメモは以上となります。
初めてマイグレーションを行う際には、トラブルなどが起きやすいと思いますので、
逐一メモしておきたいと思います。