Djangoアプリはデフォルトだとsqlite3を使用するよう設定されています。データベースとしてMySQLを使うよう設定してみましょう。
ConohaVPSにデプロイしたDjangoアプリ(ConoHa VPSにDjangoアプリをデプロイする方法)のデータベースとして、Conohaが用意してくれたMySQL(というかMariaDB)を使うよう設定してみましょう。
目次
MySQLにログイン
TeraTermなどでサーバーにSSH接続し、MySQLにログインします。
$ mysql -u root -p
パスワードを聞かれるので、サーバーにログイン時表示されているMySQL root password を入力します。
elcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 33 Server version: 10.7.3-MariaDB-1:10.7.3+maria~focal-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
MySQL(というかMariaDB)にログインできました。
データベースの作成
アプリで使用するデータベースを作成します。
MariaDB [(none)]> create database データベース名;
MariaDB [(none)]> create user 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
MariaDB [(none)]> grant all privileges on データベース名.* to ユーザー名@localhost IDENTIFIED BY 'パスワード';
MariaDB [(none)]> \q
settings.pyを編集
Djangoアプリのsettings.pyを編集し、先ほど作成したデータベースを使用するよう設定します。
DATABASES = { # 元のsqlite3データベースはコメントアウト # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'データベース名', 'USER': 'ユーザー名', 'PASSWORD': 'パスワード', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS':{ 'init_command':"SET sql_mode='STRICT_TRANS_TABLES'", }, } }
OPTIONSで付けているinit_commandはMySQLサーバーに接続するたびに、SQLモードが正しく設定されるようにするオプションです。
マイグレート
最後にマイグレートを行います。
マイグレーションファイルは予め用意してあるので、サーバー側ではマイグレーションファイルをデータベースに適用するコマンドのみを実行します。
TeraTermなどでサーバーにログインし、Djangoプロジェクトのトップディレクトリで次のコマンドを実行します。
[ユーザー名@xxx-xx-xx-xx:/home/django/django-tutorial$] sudo python3 manage.py migrate
Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK . . .
こんな感じでマイグレーションファイルが適用され、データベースに反映されます。
データベースを新しくしたので、一覧ページはまっさらになっているはずです。
あとはローカルでやったのと同じようにサーバー側でスーパーユーザーを作りましょう。
スーパーユーザーの作成方法は次の記事をご参照ください。