DjangoでMySQLとPostgreSQLを使えるようにするには【Django】【Python】

Django

この記事の最終更新日: 2020年11月20日

Djangoで使用するデータベースの設定について解説してます。

デフォルトの設定はSQLite

プロジェクトフォルダのsettings.pyを開いて、DATABASESという値を探しましょう。

Djangoでは、”DATABASES”という変数を使ってデータベースの設定を行います。

デフォルトでは以下のように設定されています。

settings.py

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

設定は辞書型で定義されています。

デフォルトという設定の中に、’ENGINE’(どのDBエンジンを使用するか) ‘NAME’(データベースファイルのパス)が設定されています。

BASE_DIRは以下ような値を呼び出して、勝手にパスを作ってくれています。

settings.py

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

SQLiteの場合、必要な設定はこの‘ENGINE’と’NAME’の二つだけです。

MySQLの場合

MySQLはサーバータイプのデータベースのため、設定しなければならない項目が少し多いです。

(サーバータイプとエンジンタイプのデータベースの違いについては、以前の記事を参照してください。)

settings.py

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': データベース名,
        'USER': 利用者名,
        'PASSWORD': パスワード,
        'HOST': ホスト名,
        'POST': '3306',
    }
}

エンジンプログラムは、’django.db.backends.mysql’というクラスを使います。

‘PASSWORD’と’USER’はデータベースサーバーにアクセスする際に利用する利用者名とパスワードを設定します。

HOSTはデータベースサーバーが動いているホストコンピュータのアドレスとポート番号を用意します。

ポート番号は、基本的に3306固定です。

PostgreSQLの場合

settings.py

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': データベース名,
        'USER': 利用者名,
        'PASSWORD': パスワード,
        'HOST': ホスト名,
        'POST': '5432',
    }
}

エンジンプログラムは、’django.db.backends.postgresql’というクラスを使います。
ポート番号は、基本的に5432固定です。
PostgreSQLを使う方は、こちらの記事も参考にしてください。

以上で設定は完了です。お疲れ様でした。

コメント

タイトルとURLをコピーしました