この記事の最終更新日: 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を使う方は、こちらの記事も参考にしてください。
以上で設定は完了です。お疲れ様でした。
大阪のエンジニアが書いているブログ。
コメント