Python
Django
PostgreSQL
Python3

DjangoでPostgreSQLを使えるようにしたときのメモ

More than 3 years have passed since last update.

環境:Debian8.2, Python3.4(virtualenv上に構築)

1, Djangoのインストール・新規プロジェクト作成

pip install Django

django-admin startproject hoge

2, PostgreSQLのインストール

apt-get install postgresql

3, libpq-devのインストール

(libpqは、C言語でつくられたPostgreSQL用インターフェイス。

各種アプリケーションインターフェイスのためのエンジンで、これがないと

PythonからPostgreSQLを使うことができない)

apt-get install libpq-dev

4, psycopg2のインストール

(psycopg2は、Python用のPostgreSQLアダプタ。これがないと以下略)

apt-get install python-psycopg2

pip install psycopg2

5, PostgreSQLに新しいユーザ、パスワードを作成

(PostgreSQLにスーパーユーザでログインし、

Djangoプロジェクトで利用するデータベース、ユーザを作成する)

su - postgres

psql(PostgreSQL対話モードにスーパーユーザでログイン)

CREATE ROLE testuser WITH PASSWORD 'testpasswd';(ユーザの作成)

CREATE DATABASE fuga OWNER testuser ENCODING 'UTF8';(データベースの作成)

PostgreSQLのコマンド詳細については

https://www.postgresql.jp/document/9.4/html/sql-commands.html

6, Django設定ファイルにデータベースの設定を書き込む

1で作成したhogeプロジェクト内のsettings.pyで、

以下のようにデータベース設定を変更


settings.py

DATABASES = {

'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'fuga',
'USER': 'testuser',
'PASSWORD' : 'testpasswd',
'HOST' : '127.0.0.1',
'PORT' : 5432,
}
}

7, マイグレーションの実行

python manage.py migrate

を実行し、エラーが出なければOK。