似非プログラマのうんちく

「似非プログラマの覚え書き」出張版

巳年じゃないけど Python やろうぜ(その 21)

PostgreSQL の利用

Django はデフォルトで SQLite3 を利用しますが、他のデータベースを活用することもできます。今回はその中から PostgreSQL を利用してみようと思います。

PostgreSQL のインストールと設定

Windows の場合は GUI インストーラもあって、比較的楽にインストール・設定ができると思います。

Linux についてはいろいろと設定を変更しないといけないっぽくて、とりあえず Fedora に関するものについては Qiita にまとめました。
Fedora に PostgreSQL をインストールして使えるようにするまで - Qiita

Django から利用するためのデータベースを作成しておきます。Linux の場合は postgres というユーザーが作成されているはずですので、以下のコマンドを実行します。

su - postgres
createdb django

Django の設定

PostgreSQLDjango から利用する場合、あらかじめ psycopg2 をインストールする必要があります。

pip install psycopg2

settings.py の中のデータベースに関する部分を以下のように書き換えます。

# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'django',
        'USER': 'postgres',
        'PASSWORD': '(snip)',
        'HOST': 'localhost',
        'PORT': 5432,
    }
}

マイグレーションと初期データの投入を再実行します。

./manage.py migrate
./manage.py loaddata initial_data

管理者ユーザーの情報もデータベースに格納されていますので、切り替えに伴って再度作成しておく必要があります。

django-admin createsuperuser

次回以降、WSGI による Apache HTTPD サーバとの連携についてお話をして、今回のシリーズはひとまず終了としたいと思います。