Djangoでrunserverで開発用サーバーを立ち上げようとすると以下エラーが発生することがあります。
【エラーの抜粋】
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)psycopg2.OperationalError
エラーになるときと、ならない時とあるのではっきりした原因は分かっていませんが、Windows10によく起きるエラーの様です。
django.db.utils.OperationalErrorの対応
postgreSQLのconfファイルの一部を修正することで解消されるようです。私もこの方法で解決しました。
内容を修正するファイルがある場所
C:\Program Files\PostgreSQL\13\dataファイル名:postgresql.conf
【変更前】
# These settings are initialized by initdb, but they can be changed. lc_messages = 'Japanese_Japan.932' # strings lc_monetary = 'Japanese_Japan.932' lc_numeric = 'Japanese_Japan.932' lc_time = 'Japanese_Japan.932'
【修正後】
# These settings are initialized by initdb, but they can be changed. lc_messages = 'en-US' # strings lc_monetary = 'en-US' lc_numeric = 'en-US' lc_time = 'en-US'
場合によっては、lc_messages のみ’en-US’に変更するだけで解消されることもあるらしいですが、原因は不明です。
上記の変更後にPCを再起動して、再度runserverを実行してください。おそらく解消されると思います。
おまけ
postgreSQLのコマンド「create database データベース名」で新規作成するデータベース名にアルファベットの大文字を使わないことを推奨します。
(例)photoprojectを事前に新規作成した後で、create database photoProjectを入力した際に、
Pが大文字になっているにもかかわらず、「すでにphotoprojectという名前のデータベースがそんざいしています」とエラーメッセージがありました。小文字と大文字をうまく識別していないかもしれません。