はじめに
こんにちは、アプリチームのあさりです。今回は、Djangoで使用するデータベースをデフォルトのSQLiteからPostgreSQLに変更する方法を紹介します。このブログでは、Djangoの導入とPostgreSQLのインストール、DBの作成は既に済んでいる前提で話を進めます。Djangoの導入については、こちらの記事を参考にしてください。最新のDjango5.0では、PostgreSQL12以上をサポートしてます。
必要なモジュールのインストール
PythonでPostgreSQLデータベースと通信するためのアダプターPsycopg2をインストールしましょう。Django5.0では、psycopg2のバージョン2.8.4以上が推奨されています。
pip install psycopg2
settings.pyの設定変更
デフォルトでは、settings.pyで次のようにSQLiteが設定されています。
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": "mydatabase",
}
}
PostgreSQLに接続するために上記を次のように編集しましょう。
DATABASES = {
'default': {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "name", #ご自身が作成したデータベース名
"USER": "user", #ご自身が設定したユーザー名
"PASSWORD": "password", #ご自身が設定したパスワード
"HOST": "localhost",
"PORT": "5432",
}
}
設定は以上です。次のコマンドを実行してご自身が定義したモデルのテーブルを作成しましょう。
python manage.py makemigrations
python manage.py migrate
接続の確認
PostgreSQLとの接続をDjangoの管理サイトで確認するために次のコマンドでスーパーユーザーを作成しましょう。
python manage.py createsuperuser
Username,Email address, Passwordの設定が求められます。ここで設定したUsernameとPasswordは管理サイトにログインする際に必要となります。ここまで完了したら、次のコマンドでサーバーを立てて、管理サイトにアクセスしてみましょう。
python manage.py runserver
実行したらブラウザで「http://127.0.0.1:8000/admin」にアクセスしてみましょう。先ほど設定したUsernameとPasswordで管理サイトにログインし、テーブルが作成されていることを確認しましょう。
おわりに
今回は、DjangoをPostgreSQLに接続する手順を紹介しました。DjangoはPostgreSQL以外にもMariaDB、MySQL、Oracleといったデータベースを公式にサポートしています。他にもサードパーティーにより提供されているデータベースへの接続をサポートしているものも多数あるそうなので気になった方は調べてみてください。