PostgresSQLの設定
データベースはPostgresSQLを使用。
Djangoのデフォルトはsqliteになっているが、Herokuが未対応なので、Postgresを使用する。djangoでpostgresを使用するには、psycopg2-binary
パッケージが必要になる。django-heroku
パッケージをインストールしておけば自動でインストールされる。
(*このパッケージをインストーする際によくエラーが発生していた。使用しているOSを更新しxcodeなどを最新版にしておいた方が良さそう。他にも原因はいくつかありそう・・・)
まずはバージョンの確認。
(myenv) $ psql --version
psql (PostgreSQL) 12.2
インストールしていない場合、もしくはバージョンが古い場合は使用しているOSに合わせて、インストール/更新を行う。
sudo apt update
sudo apt install -y python3-pip python3-dev libpq-dev postgresql postgresql-contrib
aptコマンドに関しては、以下を参照。
データベースを起動し、プロジェクト用のDBを作成する。core/settings.pyの中に、以下のような箇所があるがここの中身を具体的に作っていくイメージ。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'データベース名',
'USER': 'ユーザー名',
'PASSWORD': 'パスワード',
'HOST': 'ホスト名',
'PORT': '',
}
}
まずはpostgresのターミナルを起動する(仮想環境は起動する必要はない)。 PostgreSQLには、デフォルトでpostgresという名前のユーザーとDBが作成されている。
(myenv) $ psql -U postgres
よく利用するコマンドは、こちらを参照。
すでに作成されているテーブルを確認したい場合は\l
で確認することができる。
以下のコマンドでDBを作成する。
CREATE DATABASE データベース名;
CREATE USER ユーザ名 WITH PASSWORD 'パスワード';
GRANT ALL PRIVILEGES ON DATABASE データベース名 TO ユーザ名;
setting.pyの内容を変更。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'データベース名',
'USER': 'ユーザ名',
'PASSWORD': 'パスワード',
'HOST': 'localhost',
'PORT': '',
}
}
DBをマイグレーションし、サーバを起動してみる。
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
http://127.0.0.1:8000/にアクセスし、以下の画面が表示されればDBの設定は完了。

最終更新
役に立ちましたか?