今回の記事では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でPostgreSQLを使う設定に変更する
プロジェクトの作成
次に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
DjangoからPostgreSQLに接続できているか確認
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;
ユーザーの確認ができたら成功しています。お疲れ様でした。