前提・実現したいこと
はめて投稿させてもらいます。よろしくお願いします。
django起動時に、postgres接続用のコネクションプールを取得し、django変数(settings.py内の変数)にセットしておいて
設定しておいたコネクションプールを、個別機能側にて使用したい。
発生している問題・エラーメッセージ
変数には値が設定あれているのですが、使用しようとすると以下のメッセージが表示されます。
おそらくコネクションプールからDBに接続する命令(connect())を実行した際、コネクション
が取れないのだと思われます。
エラーメッセージ 'psycopg2.extensions.connection' object is not callable
該当のソースコード
python
1ソースコード apps.py 2 class AbcConfig(AppConfig): 3 def ready(self): 4 settings.gcon = psycopg2.connect(host=POSTGRES_HOST, port=POSTGRES_PORT, dbname=POSTGRES_DBNAME, 5 user=POSTGRES_USER, password=POSTGRES_PASS) 6 setattr(settings, "gpool", pool.QueuePool(settings.gcon, max_overflow=10, pool_size=5))
試したこと
apps.pyに記述したコードを実際に使用する機能のviews.pyに記述して試したところ、django設定変数に設定したオブジェクトでpostgresに問題なく接続できることは
確認しています。(postgresに接続するロジックは変更していません。違いは起動時に変数にセットするのか、機能に来た時にセットするのかの違いだけだと
思っています。)
しかし、django起動時に変数に設定したオブジェクトでは、上記のようなメッセージがコンソールに表示されます。
設定変数へのセットするタイミングで使用できる、使用できないが発生しています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
python 3.7.4
djngo 3.0.1
psycopg2 2.8.4
SQLAlchemy 1.3.12
あなたの回答
tips
プレビュー