本記事のテーマ
作業環境
Ubuntu20.04
PostgreSQL12
Django
Pycharm
詰まったところ
動かして学ぶ!Python Django開発入門を参考にUbuntuで環境構築をしていた.
python manage.py runserver
を行うと〜のRoleが登録されていません。
〜のデータベースが登録されていませんとエラーが発生した。
結論:
1. Postgresqlで登録しなければならない
2. クライアント認証を変更する
Postgresqlが何者かわからずに使っていたので時間がかかってしまった。
解決方法
とりあえず次の資料を参考にPostgreAQL12をインストールする
つぎに、下記サイトを参考にデータベースとRoleを登録する。
ここで、
psql --username test01 --password
を行なうが、エラーが返ってくる。
原因は、登録したRoleの名前とデータベースの名前がが違ったからだった。
そこで、下記サイトのように、データベースをしていて確認すると無事に登録したRoleで登録したデータベースに入ることができた。
psql -U role_sample -d postgres
あとは、Djangoのsettings.pyのDATABASE={・・・} に登録するだけ。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'PostgreSQLに登録したデータベースの名前',
'USER': os.environ.get('DB_USER'),
'PASSWORD': os.environ.get('DB_PASSWORD'),
'HOST':'',
'POST':'',
}
}
最後にもう一つ、環境変数DB_USERにPostgreSQLに登録したユーザネーム、DB_PASSWORDに登録したパスワードを設定する。
この作業については、Pycharm上ではRun/Debug Configurationのrunserverの設定で、Enviroment→Enviroment variableの中に記載すれば良い
最後に、Ubuntu+postgreSQLの設定についてなにかご質問あればコメントください。
分かる範囲で回答いたします。