データベース接続
設定の変更
Djangoでデータベース接続できるようにするには、settings.py
ファイルのDATABASES
タプルでデータベースを指定する必要があります。
以前はこのような感じでした。:
SQLite
my_tennis_club/my_tennis_club/settings.py
:
.
.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
.
ここでは、次のように変更する必要があります。
PostgreSQL
my_tennis_club/my_tennis_club/settings.py
:
.
.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'masteruser',
'PASSWORD': '12345678',
'HOST': 'techis-django-project.cdxmgq9zqqlr.us-east-1.rds.amazonaws.com',
'PORT': '5432'
}
}
.
注:値はプロジェクトによって異なります。
エンジンとは?
ファイルを見るとわかるようにsettings.py
、postgresql
の代わりにsqlite
を挿入します。
名前は?
データベースには名前がありませんが、データベースにアクセスするには名前を割り当てる必要があります。
名前が指定されていない場合、プロバイダーは'postgres'
データベースの名前として受け入れます。
ユーザー名とパスワード?
データベースの作成時に指定したユーザー名とパスワードを挿入します。
ホスト?ポート?
settings.py
ファイルでわかるように、sqlite
の代わりにpostgresql
を挿入し、データベースの作成時に指定したユーザー名とパスワードを挿入します。
およびHOST
は、PORT
RDSインスタンスの「接続とセキュリティ」セクションにあります。これらは「エンドポイント」および「ポート」として説明されます。
今回のプロジェクトでは次のとおりとなります。
'HOST': 'techis-django-project.cdxmgq9zqqlr.us-east-1.rds.amazonaws.com'
'PORT': '5432'
移行する
settings.py
で変更を行ったら、変更を適用する前に、仮想環境で移行を実行する必要があります。
py manage.py migrate
これにより、次の結果が得られます。
Operations to perform:
Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying members.0001_initial... OK
Applying members.0002_members_delete_member... OK
Applying members.0003_rename_members_member... OK
Applying sessions.0001_initial... OK
ここでプロジェクトを実行すると、次のようになります。
py manage.py runserver
ブラウザ127.0.0.1:8000/
で表示します。
プロジェクトのホームページが表示されますが、「メンバー」リンクをクリックすると、メンバーがいないことがわかります。
それはデータベースが空であるためです。次の章では、データベースにメンバーを入力します。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。