新しいプロジェクトPython 3x postgresql 9xおよびpg8000 1x dbapi?
-
02-10-2019 - |
質問
私はいくつかの新しいプロジェクトを開始していますが、PG8000が生産プロジェクトに適した選択肢と見なされているかどうかを知りたいですか?
明らかにPythonとPostgreSQLは成熟した製品ですが、成熟度とパフォーマンスに関してはPG8000が心配です。私のDBアクセスは苦しみますか、それとも受け入れられますか?
だから、私の質問に答える際にある程度の緯度をとってください。 PG8000は準備ができていますか? DB中心プログラムを作成するときに完全にアクセスするために、Python DBAPI 2.0仕様を使用するのに問題がありますか?
私はこのような質問が常に尋ねられることを知っていますが、私は見て、PG8000に関連する最新のものを見つけることができませんでした。そして、明らかに、数か月以降の答えは、関連するテクノロジーで行われたリリースを考慮して現在ではありません。
解決
プログラムドライバーを「独立」しようとするべきだと思います。 PostgreSQL DBAPI 2.0ドライバーで動作するはずです。唯一の違いは、インポートセクションとDB接続の確立です。これは次のように見えます:
use_pgdb = 0
try:
import pgdb
use_pgdb = 1
except:
try:
import psycopg2
except:
raise exceptions.ImportError('No PostgreSQL library, install psycopg2 or PyGres!')
if use_pgdb:
_CONN = pgdb.connect(connect_string)
else:
_CONN = psycopg2.connect(dsn)
このドライバーの「チェーン」に追加します pg8000
そして、それを試してみてください。すべてのドライバーが機能し、パフォーマンスが良くなる場合は、それらのドライバーを離れます。ドライバーの1人が機能しない場合、またはパフォーマンスが低い場合は、コードでコメントして無効にします。 2人以上のドライバーの場合、コードを例から変更し、ドライバーと接続機能を備えたある種の辞書を作成します。
所属していません StackOverflow