前回(別記事「DB-SQLite-操作」)は、Python/Django環境からSQLiteデータベースを操作しました。
今回は、同じ環境から、Docker上で稼働させたMySQLコンテナに、接続します。
※但し本手順では、(Settings.py、Models.py等の)Djangoソースに登録済みのデータを元に、MySQLに新規で作成します。
※つまり、MySQLに既存のテーブルが既にある場合でも、それと同名のテーブルを作成しようとしてしまうので、(同名のテーブルが既に存在します、といった)エラーが発生してしまうことになります。
※この様に、もしMySQLに既存のテーブルに接続したい場合は、次の別記事を参照願います。
(a)別記事「[基礎知識]Djangoから既存DB(MySQL)テーブルに接続・操作する手順」参照
以下は、その作業記録(備忘録)です。
1.Docker上でMySQLコンテナ作成・稼働
(1)MySQLコンテナ稼働
Docker上のMySQLイメージからMySQLコンテナを作成します。
①イメージダウンロード後、実行
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-21.png?resize=533%2C244&ssl=1)
②MySQLコンテナ名指定・作成
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-23.png?resize=374%2C345&ssl=1)
③MySQLコンテナ作成確認
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-22.png?resize=600%2C194&ssl=1)
④MySQLコンテナの稼働・接続
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-24.png?resize=600%2C262&ssl=1)
(補足)上記(画像2行目)パスワードは、docker-compose.ymlファイル中に設定しておきます。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-26.png?resize=600%2C305&ssl=1)
⑤MySQLコンテナ動作確認
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-25.png?resize=518%2C238&ssl=1)
※上記手順の詳細については
(a)別記事「[レビュー](docker-compose編)Docker Desktop上で、MySQL試験環境作成」
(b)別記事「[基礎知識]DockerでMySQLコンテナに接続する手順」
をご覧下さい)
2.Python環境(Djangoプロジェクト)からMySQLコンテナへの接続
現在、SQLiteに接続している環境に、MySQLにも接続できるように設定を変更します。
(1)Settings.py
DATABASES設定に、以下の様に(追加設定1)を追加します。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-38.png?resize=437%2C371&ssl=1)
※上記詳細については別記事「[基礎知識]DjangoプロジェクトのSettings.py/DATABASES情報に設定するポート番号について」を参照して下さい。
(2)実行環境の確認・再起動
前回の実行環境(python仮想環境有効化、Django環境(Webサーバー)再起動、等)を行います。
① python仮想環境有効化
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-39.png?resize=490%2C217&ssl=1)
※上記GUI操作以外に、次のコマンドでも実行できます。
> conda activate Python_Django_hajimete01
② Django環境(Webサーバー)再起動
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-40.png?resize=600%2C226&ssl=1)
Djangoプロジェクトのmanage.pyが置いてあるフォルダで、次のコマンドを実行します。
> Python manage.py runserver
③ 前回作成アプリケーション実行確認
以降((3)以降)で、MySQL接続を行う前に(一応)前回作成アプリケーション実行を確認しておきます。
![](https://i0.wp.com/zakku-spot.com/wp-content/uploads/2023/07/image-41.png?resize=600%2C214&ssl=1)