開発運用

DjangoとPostgreSQLの設定方法

DjangoアプリケーションとPostgreSQLデータベースの統合は、堅牢でスケーラブルなウェブアプリケーションの構築において非常に重要です。特に、Ubuntu 16.04環境での設定と運用は、さまざまな開発者にとって重要な作業となります。本記事では、DjangoアプリケーションとPostgreSQLをUbuntu 16.04サーバー上で設定し、適切に接続するための完全な手順を説明します。

1. 必要なパッケージのインストール

まず、PostgreSQLとその関連ツール、そしてDjangoに必要なPythonパッケージをインストールする必要があります。

PostgreSQLのインストール

Ubuntu 16.04には、APTパッケージマネージャを使ってPostgreSQLをインストールできます。以下のコマンドを使用して、PostgreSQLとそのクライアントツールをインストールします。

bash
sudo apt update sudo apt install postgresql postgresql-contrib

インストールが完了したら、PostgreSQLのサービスが自動的に開始されるはずです。以下のコマンドでサービスの状態を確認できます。

bash
sudo systemctl status postgresql

PythonとPostgreSQL用のライブラリのインストール

次に、DjangoとPostgreSQLを接続するためにpsycopg2というライブラリをインストールする必要があります。psycopg2は、DjangoとPostgreSQLの間でデータをやり取りするために使用されるPython用のPostgreSQLアダプターです。

bash
sudo apt install python3-pip pip3 install psycopg2

Djangoのインストール

まだインストールしていない場合、以下のコマンドでDjangoをインストールします。

bash
pip3 install django

2. PostgreSQLデータベースの設定

PostgreSQLをインストールした後、データベースとユーザーを作成する必要があります。

データベースとユーザーの作成

PostgreSQLにアクセスするためには、PostgreSQLのpsqlシェルを使用します。以下のコマンドを使って、PostgreSQLの管理者ユーザーpostgresとしてログインします。

bash
sudo -u postgres psql

次に、新しいデータベースとそのデータベースにアクセスするためのユーザーを作成します。

sql
CREATE DATABASE mydb; CREATE USER myuser WITH PASSWORD 'mypassword'; ALTER ROLE myuser SET client_encoding TO 'utf8'; ALTER ROLE myuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE myuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

これにより、mydbというデータベースと、そのデータベースにアクセスできるmyuserというユーザーが作成されます。

PostgreSQLシェルを終了するには、以下のコマンドを実行します。

sql
\q

3. Djangoプロジェクトの設定

次に、Djangoプロジェクトの設定を行います。新しいDjangoプロジェクトを作成する場合は、以下のコマンドで新しいプロジェクトを開始します。

bash
django-admin startproject myproject cd myproject

Djangoの設定ファイルsettings.pyを開いて、DATABASESの設定をPostgreSQLに変更します。

python
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mydb', 'USER': 'myuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '5432', } }

ここでは、mydbがデータベース名、myuserがユーザー名、mypasswordがそのパスワードです。

4. マイグレーションの実行

DjangoとPostgreSQLの接続が設定できたら、データベースにテーブルを作成するためにマイグレーションを実行します。

bash
python3 manage.py migrate

これで、Djangoが必要なテーブルをPostgreSQLデータベースに作成します。

5. サーバーの起動と確認

Djangoプロジェクトの設定が完了したら、開発用サーバーを起動して、アプリケーションが正しく動作しているかを確認します。

bash
python3 manage.py runserver

ブラウザでhttp://127.0.0.1:8000/にアクセスし、Djangoのウェルカムページが表示されれば、設定は成功です。

6. データベースの管理と運用

データベースのバックアップ

PostgreSQLデータベースを運用する際には、バックアップが重要です。データベースをバックアップするには、pg_dumpを使用します。

bash
pg_dump mydb > mydb_backup.sql

データベースの復元

バックアップからデータベースを復元するには、psqlコマンドを使用します。

bash
psql mydb < mydb_backup.sql

7. セキュリティの強化

データベースのセキュリティを強化するために、PostgreSQL設定ファイルpg_hba.confを編集し、アクセス制御を設定することが重要です。特に、データベースへのアクセスをローカルホストに制限することで、安全性を確保できます。

pg_hba.confファイルは、通常/etc/postgresql/9.5/main/pg_hba.confにあります。ファイルを開き、以下の行が含まれていることを確認します。

css
host all all 127.0.0.1/32 md5

この設定により、PostgreSQLはローカルホストからの接続のみを許可し、パスワード認証(md5)を要求します。

8. 結論

これで、DjangoアプリケーションとPostgreSQLデータベースがUbuntu 16.04サーバー上で適切に設定され、接続されました。開発者は、この環境で強力でスケーラブルなウェブアプリケーションを構築し、運用する準備が整いました。

Back to top button