2025年6月29日日曜日

Django MySQLに移行

 DjangoをMySQLに対応させるには、以下の手順を行います。簡潔に、かつ確実に動くように整理しました。


✅ 手順一覧

① MySQLをインストール

すでにMySQLがインストール済みならスキップOKです。


Ubuntuの場合(例):

sudo apt install mysql-server


② Django用MySQLドライバをインストール(必須)


pip install mysqlclient

補足: mysqlclientは公式推奨。Cで書かれており高速。<br>

エラーが出る場合は以下のようなパッケージを先に入れる必要あり(Ubuntuの場合):

sudo apt install python3-dev default-libmysqlclient-dev build-essential

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pkg-config

(https://pypi.org/project/mysqlclient/)




③ MySQLにデータベースを作成

MySQLに入って、Django用のDBとユーザーを作る:


CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;


④ Django設定ファイルを修正(settings.py)

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'mydb',

        'USER': 'myuser',

        'PASSWORD': 'mypassword',

        'HOST': 'localhost',

        'PORT': '3306',

        'OPTIONS': {

            'charset': 'utf8mb4',

            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",

        },

    }

}


⑤ マイグレーションの実行(Django側)

python manage.py makemigrations

python manage.py migrate

🚨 注意点

mysqlclientがうまく入らない場合 → 代替で PyMySQL も使用可能(ただし非公式)


Windowsの場合、MySQL Connector/Cのインストールが必要になることがあります


utf8mb4 を使うことで絵文字なども保存可能(推奨)


tarで固めるてbackup

 tar -cf jan1.tar  jan1



解凍は
extractの「e」
「f」はファイル指定らしい

 tar -xf jan1.tar


バックアップには、グーグルのドライブが簡単です

VPSとlocal(ファイル同期)

rsyncを使うと簡単にlocalがVPSに反映される!


rsync -avz -e "ssh -p 2222" bbs/ ubuntu@ptag.page:/home/ubuntu/bbs/



koba@koba-FMVD38001:~$ cd jan1

koba@koba-FMVD38001:~/jan1$ rsync -avz -e "ssh -p 2222" bbs/ ubuntu@ptag.page:/home/ubuntu/bbs/

sending incremental file list

./

db.sqlite3

media/images/

media/images/Screenshot_from_2025-03-15_04-08-04_m8kcJfQ.png


sent 429,405 bytes  received 1,730 bytes  287,423.33 bytes/sec

total size is 4,960,570  speedup is 11.51