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

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

   https://www.postgresql.org

こんにちは、えびかずきです。

今日はオープンソースのデータベースシステムである『PostgreSQL』を
インストールして『Django』に繋ぐまでの操作をやっていきます。

最近DjangoでWebアプリの作成を勉強していて、
データベースを使用する必要性が出てきたので備忘録的に記事を残しておきます。

私と同じようにDjangoでデータベースの利用を始めようとしている方がいたら、参考にしてみてください。

それではやっていきましょう!

開発環境

OS:MacOS Catalina 10.15
Python:3.7.3
Django:2.2.2
PostgreSQL:10.13
psycopg2-binary:2.8.5

PostgreSQLをインストールする

Macユーザーの場合は、ターミナルを開いて下のようにHomebrewでインストールできます。
※Windowsユーザーの場合はPostgreSQL公式ダウンロードページから。

今回は私の用途に合わせて『@10』でVer.10をインストールするオプションをつけています。

$ brew install postgresql@10

『@〜』オプションを付与しない場合は、最新Ver.がインストールされます。※2020/7/9時点の最新Ver.は12.3のようです。

確認:
下のように『psql –version』コマンドでバージョン情報が表示されたら、きちんとインストールできています。

$ psql --version
>>psql (PostgreSQL) 10.13

『psql –version』でエラーが発生する場合

ターミナルで『psql –version』を実行して「command not found」が表示される場合は、
インストールに失敗したわけではなくpsqlの環境変数がとおっていないだけの可能性が高いです。

この場合、ホームディレクトリの[.bash_profile]ファイルへ環境変数の設定を書き込めばOK。
※『.bash_profile』はターミナル(bash)が読み込む設定ファイルです。

1.『$ ls -a』で[.bash_profile]があるか確認。
(→なければ『$ touch ~/ .bash_profile』でファイルを作成)

2.『vi ~/ .bash_profile』を実行してエディタでファイルを開く。

3.『i』キーでinsertモードにして、
『export PATH=$PATH: /usr/local/Cellar/postgresql@10/10.13/bin/』
を追記する。
※Ver指定なしてインストールした場合は『@~』は必要なし。
※『10.13』のところは自分がインストールしたVerを記入。

4.『esc』キーでコマンドモードにして、『:wq』→『enter』キーで保存。

5.『$ source ~/ .bash_profile』を実行して、ファイルを読み込んで完了。

新規データベースを作成する

PostgreSQLがインストールできたら、早速データベースを作成してみます。

1.まずは下のコマンドで、インストールした「postgresql@10」を起動する。

$ brew services start postgresql@10

※終了する場合は、『start』を『stop』に変えて実行する。

2.下のコマンドで新規データベース[test_database]を作成できる。

$ createdb test_database

3.『pqsl -l』コマンドでデーダベース一覧を表示して、作ったファイルがあるか確認。

                                      List of databases
     Name      |   Owner    | Encoding |   Collate   |    Ctype    |     Access privileges     
—————+————+———-+————-+————-+—————————
 postgres     | user name | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 test_database | user name | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0     | user name | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/user name           +
               |            |          |             |             | user name=CTc/user name
 template1     | user name | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/user name           +
               |            |          |             |             | user name=CTc/user name
(4 rows)

パスワードを要求された場合

PostgreSQLの操作でパスワードを要求される場合は、以下の設定で省略できます。

1.『vi /usr/local/var/postgres@10/pg_hba.conf』で設定ファイルを開く。

2.『i』でinsertモードにして、下の記述部分を『trust』に変更する。
「# “local” is not Unix domain socket connections only
local     all                       all                                                 trust

3.『esc』キー→『:wq』→『enter』キーで保存して完了。

PostgreSQLとPythonを繋ぐ

PostgreSQLをPythonで操作するためにドライバをインストールして、
両者をつなげてやる必要があります。

今回はドライバとして『psycopg2-binary』を下のコマンドでインストールしておきます。

(使用するPython仮想環境)$ pip install psycopg2-binary 

PostgreSQLとDjangoプロジェクトを繋ぐ

postgreSQLとDjangoプロジェクトを繋ぐには、Djangoプロジェクトの[settings.py]ファイル内にある、「DATABASES」という辞書変数を編集する必要があります。

データベースの設定欄を以下のように修正すれば、完了。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'private_diary',
        'HOST': '',
        'PORT': '',
    }
}

※デフォルトではSQLite3でデータベース接続する設定になっています。

まとめ

今回は、PostgreSQLをインストールしてDjangoに繋ぐまでの手順を説明しました。

Macユーザーの場合は、Homebrewで簡単にインストールできるので便利ですね。

ではまた次の記事でお会いしましょう!

(そろそろDjangoでWebアプリを作る記事を書いていきたいな。。。)

参考書籍

この記事は下の書籍を参考にさせていただきました。

動かして学ぶ!Python Django開発入門

Djangoカテゴリの最新記事