Django: PostgreSQL を導入

Django 4 の運用(デプロイ・管理編)

日付:2025年2月19日

Django のデフォルトデータベースではなく、PostgreSQL を使用する方法を解説します。

目 次

はじめに

Django のデフォルトデータベースは SQLite ですが、本番環境では PostgreSQL のような強力なリレーショナルデータベースを使用するのが一般的です。
本記事では、Django プロジェクトに PostgreSQL を導入する方法を解説します。

この記事で学べること

  • Django で PostgreSQL を使用するための設定
  • psycopg2 パッケージのインストール
  • PostgreSQL のデータベース作成方法

1. PostgreSQL のインストール

まず、PostgreSQL をインストールする必要があります。以下のコマンドでインストールできます。

Ubuntu (Debian 系)

SH
sudo apt update sudo apt install postgresql postgresql-contrib

macOS (Homebrew)

SH
brew install postgresql

Windows

Windows の場合、公式サイト からインストーラーをダウンロードしてインストールします。

2. psycopg2 のインストール

Django で PostgreSQL を使用するには、Python の PostgreSQL 用ドライバ psycopg2 をインストールする必要があります。

SH
pip install psycopg2-binary

もし psycopg2 の方が推奨される環境の場合は、以下のコマンドでインストールします。

SH
pip install psycopg2

3. PostgreSQL データベースの作成

PostgreSQL にログインし、新しいデータベースを作成します。

SH
sudo -u postgres psql

次に、新しいデータベースとユーザーを作成します。

SQL
CREATE DATABASE mydb; CREATE USER myuser WITH PASSWORD 'mypassword'; ALTER ROLE myuser SET client_encoding TO 'utf8'; ALTER ROLE myuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE myuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

これで mydb というデータベースと myuser というユーザーが作成されました。

4. Django の settings.py 設定

settings.py でデフォルトの SQLite 設定を PostgreSQL に変更します。

PYTHON
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mydb', 'USER': 'myuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', # リモート DB を使用する場合は適宜変更 'PORT': '5432', } }

5. マイグレーションを実行

データベースの準備ができたら、マイグレーションを適用して初期設定を行います。

SH
python manage.py migrate

これで PostgreSQL にテーブルが作成され、Django での利用準備が完了します。

6. 接続確認

Django シェルを開き、データベースが正常に接続されているか確認します。

SH
python manage.py dbshell

または、以下のコマンドでデータの挿入と取得を試してみます。

PYTHON
from django.contrib.auth.models import User User.objects.create_superuser(username='admin', password='admin', email='admin@example.com') print(User.objects.all())

7. まとめ

Django で PostgreSQL を導入する手順は以下の通りです。

ステップ内容
1PostgreSQL をインストール
2psycopg2 パッケージをインストール
3PostgreSQL でデータベースとユーザーを作成
4settings.py でデータベース設定を変更
5マイグレーションを適用 (migrate)
6接続確認 (dbshell または User.objects.all())

PostgreSQL を導入することで、Django アプリケーションのスケーラビリティとパフォーマンスが向上します。