psycopg3 に基づく SQLAlchemy エンジンの作成 質問する

psycopg3 に基づく SQLAlchemy エンジンの作成 質問する

psycopg次のコードをバージョン 3に基づく同等のコードにアップグレードする必要があります。

import psycopg2
from sqlalchemy import create_engine

engine = create_engine('postgresql+psycopg2://', creator=connector)

この psycopg2 URL はうまく機能しましたが、次の点が問題でした。

import psycopg # v3.1
from sqlalchemy import create_engine

engine = create_engine('postgresql+psycopg://', creator=connector)

(「psycopg3」という単語も試しましたが、うまくいきませんでした)

戻り値:

Traceback (most recent call last):

  File "/tmp/ipykernel_1032556/253047102.py", line 1, in <cell line: 1>
    engine = create_engine('postgresql+psycopg://', creator=connector)

  File "<string>", line 2, in create_engine

  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/deprecations.py", line 309, in warned
    return fn(*args, **kwargs)

  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/create.py", line 534, in create_engine
    entrypoint = u._get_entrypoint()

  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint
    cls = registry.load(name)

  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/langhelpers.py", line 343, in load
    raise exc.NoSuchModuleError(

NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgresql.psycopg

psycopgそれでは、 (v3.x)に基づいて SQLAlchemy エンジンを適切に作成するにはどうすればよいでしょうか?

私のsqlalchemyバージョンは「1.4.35」(バージョンを試しました1.4.40が、AttributeError: module 'sqlalchemy' has no attribute 'dialects'エラーが発生しました)。

psycopg3 ドキュメント:詳しくはこちら
sqlalchemy ドキュメント:https://docs.sqlalchemy.org/en/14/core/engines.html

ベストアンサー1

現在の回答の更新です: Sqlalchemy 2.0 がリリースされ、psycopg3 をサポートしています。これを使用するには、2.0 にアップグレードする必要があります。

接続文字列を から に変更する必要があることに注意してくださいpostgresql。変更postgresql+psycopgしないと、SqlAlchemy は (執筆時点では) を使用することになりますpsycopg2

詳細については、こちらのドキュメントをご覧ください:https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg

おすすめ記事