概要
Django プロジェクトで SQLite を使った開発から、
本番環境と同じ PostgreSQL + Django の構成へ切り替えるための手順をまとめます。
実際に構築して動作確認まで行った内容を備忘録として記録しています。
0. 作業の全体像
Django × PostgreSQL 環境構築は、この 4 ステップで完了します。
- PC に PostgreSQL(本番と同じ DB)をインストール
- PostgreSQL で 新しい DB とユーザー を作成
- Django の
settings.pyを PostgreSQL 用に切り替え -
python manage.py migrate→ アプリ再起動
1. PostgreSQL のインストール
Windows の場合は公式サイトからインストール可能です。
インストール時に決める内容:
- postgres(管理者ユーザー)のパスワード
- ポート(デフォルト 5432)
- pgAdmin を入れるかどうか(任意)
1-1. 新規データベース & ユーザーの作成
PostgreSQL の CLI「psql」から設定します。
psql の起動と接続
Server → Enter(localhost)
Database → Enter(postgres)
Port → Enter(5432)
Username → postgres
Password → インストール時のパスワード
データベースとユーザーを作成
CREATE DATABASE comment_dashboard;
CREATE USER comment_user WITH PASSWORD 'your_password_here';
GRANT ALL PRIVILEGES ON DATABASE comment_dashboard TO comment_user;
comment_dashboard DB に切り替える
\c comment_dashboard
public スキーマの権限付与(Django がテーブル作成するため)
GRANT ALL ON SCHEMA public TO comment_user;
2. Django 側の設定を PostgreSQL に変更する
2-1. PostgreSQL ドライバをインストール
Windows では psycopg2-binary がビルドエラーになりやすいため、
今回は psycopg3(バイナリ版) を使用します。
pip install "psycopg[binary]"
2-2. settings.py の DATABASES を PostgreSQL 用に変更
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "comment_dashboard",
"USER": "comment_user",
"PASSWORD": "your_password_here",
"HOST": "localhost",
"PORT": "5432",
}
}
3. Django migrate を実行(PostgreSQL へテーブル作成)
python manage.py migrate
成功すると、以下のテーブルが PostgreSQL に作成されます:
- auth_user
- django_migrations
- sessions
- admin_*
- アプリのモデル(例:myapp_*)
4. アプリ起動・動作確認
python manage.py runserver
- トップページ
- /admin/
が問題なく表示されれば接続成功です。
新規 DB のため、管理ユーザーが必要な場合は下記で初期ユーザーを作成します。
python manage.py createsuperuser
5. PostgreSQL のテーブル確認(任意)
psql から以下を実行:
\c comment_dashboard
\dt
Django で作成されたテーブル一覧が確認できます。
6. まとめ
本記事で行った内容:
- PostgreSQL のインストール
- psql でデータベース & ユーザー作成
- public スキーマの権限付与
- Django の settings.py を PostgreSQL 向けに変更
- migrate → runserver による動作確認
これでローカル環境が 本番構成と同じ PostgreSQL ベース になり、
外部公開や SaaS 化にも対応しやすくなります。
7. 今後の発展ポイント
- .env に接続情報を記載して環境変数管理
- Render / Railway / Supabase など外部DBとの接続
- pgAdmin を使った GUI 管理
- Postgres 拡張(pgvector など)
- 本番デプロイ時の migrate / collectstatic の自動化