DjangoのデータベースでPostgreSQLを使う

今回の記事ではDjangoのデータベースとしてPostgreSQLを使う方法を解説していきます。

PostgreSQLでデータベースを作成する

まずはPostgreSQLでデータベースの作成を行います。ターミナルで以下コマンドを入力します。DetaBaseNameとuserNameは適宜お好きな名前、ユーザー名を入力してください。

createdb DetaBaseName -O userName

データベースの作成が完了したらPostgreSQLに接続してみます。

psql -U uha-blog -d myDjangoAppDB

「\d」コマンドでテーブルの確認をしてみます。当然何にもテーブルはないと言われます。

myDjangoAppDB=> \d
Did not find any relations.

Django側の設定を変更する

プロジェクトの作成

次にDjangoの設定を進めていきます。まずはDjangoのプロジェクトを作成しましょう。

django-admin startproject mysite

モジュールのインポート

次にDjangoでPostgreSQLを使用するために必要なモジュールのインストールをします。

pip install psycopg2-binary

settings.pyの編集

続いてsettings.pyの編集を行います。Djangoではデフォルトでは以下のようになっています。これはsqliteを使うための設定です。

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

上記をPostgreSQLを使うための設定に変更します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',  #PostgreSQL使いますよ宣言
        'NAME': 'myDjangoAppDB', # データベース名
        'USER': 'uha-blog', # データベースに接続するユーザー名
        'PASSWORD': 'uhapass', # データベースに接続する際のパスワード
        'HOST': 'localhost',
        'PORT': '',
    }
}

以上で設定は完了です。djangoのコマンドを使ってテーブルを作成します。

python manage.py makemigrations
python manage.py migrate

確認

PostgreSQLとDjangoが接続されたかを確認します。まずはsuperuserを作成します。

python manage.py createsuperuser

上記コマンドを実行するとユーザー名・メールアドレス・パスワードを聞かれるので、入力をしてスーパーユーザーを作成します。

djangoで確認

続いてサーバーを立ててスーパーユーザーで管理画面にログインしてみましょう。

python manage.py runserver

上記コマンドを実行したらブラウザで「http://127.0.0.1:8000/admin/」にアクセスします。先ほど入力したユーザー名とパスワードでログインするとdjangoの管理画面が開きます。

PostgreSQLで確認

次にPostgreSQLで確認してみましょう。PostgreSQLに接続します。

createdb DetaBaseName -O userName

「\d」コマンドを入力すると先ほどは何も表示されませんでしたが、今回は何やらいっぱい表示されます。

また以下のコマンドを実行して先ほど作成されたスーパーユーザーがいることを確認しましょう

select * from auth_user;

ユーザーの確認ができたら成功しています。お疲れ様でした。

参考

DjangoにPostgreSQLを適用する

DjangoとPostgreSQLデータベースを連携させるための初期設定

PostgreSQLをインストールしてDjangoに繋ぐまで

コメント

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