DjangoをPostgreSQLに接続する方法

はじめに

こんにちは、アプリチームのあさりです。今回は、Djangoで使用するデータベースをデフォルトのSQLiteからPostgreSQLに変更する方法を紹介します。このブログでは、Djangoの導入とPostgreSQLのインストール、DBの作成は既に済んでいる前提で話を進めます。Djangoの導入については、こちらの記事を参考にしてください。最新のDjango5.0では、PostgreSQL12以上をサポートしてます。

必要なモジュールのインストール

PythonでPostgreSQLデータベースと通信するためのアダプターPsycopg2をインストールしましょう。Django5.0では、psycopg2のバージョン2.8.4以上が推奨されています。

pip install psycopg2

settings.pyの設定変更

デフォルトでは、settings.pyで次のようにSQLiteが設定されています。

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": "mydatabase",
    }
}

PostgreSQLに接続するために上記を次のように編集しましょう。

DATABASES = {
    'default': {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": "name", #ご自身が作成したデータベース名
        "USER": "user", #ご自身が設定したユーザー名
        "PASSWORD": "password", #ご自身が設定したパスワード
        "HOST": "localhost",
        "PORT": "5432",
    }
}

設定は以上です。次のコマンドを実行してご自身が定義したモデルのテーブルを作成しましょう。

python manage.py makemigrations
python manage.py migrate

接続の確認

PostgreSQLとの接続をDjangoの管理サイトで確認するために次のコマンドでスーパーユーザーを作成しましょう。

python manage.py createsuperuser

Username,Email address, Passwordの設定が求められます。ここで設定したUsernameとPasswordは管理サイトにログインする際に必要となります。ここまで完了したら、次のコマンドでサーバーを立てて、管理サイトにアクセスしてみましょう。

python manage.py runserver

実行したらブラウザで「http://127.0.0.1:8000/admin」にアクセスしてみましょう。先ほど設定したUsernameとPasswordで管理サイトにログインし、テーブルが作成されていることを確認しましょう。

おわりに

今回は、DjangoをPostgreSQLに接続する手順を紹介しました。DjangoはPostgreSQL以外にもMariaDB、MySQL、Oracleといったデータベースを公式にサポートしています。他にもサードパーティーにより提供されているデータベースへの接続をサポートしているものも多数あるそうなので気になった方は調べてみてください。

参考:Djangoのデータベース

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です