驱动管理器

adbc_driver_manager 包为 Python 提供了一个 驱动程序管理器 接口。该包提供了两种 API:

  1. 底层绑定,其本质上与 C API 相同。

  2. 如果安装了 PyArrow 或 Polars,则提供一个兼容 DBAPI (PEP 249) 的接口。

安装

pip install adbc_driver_manager

用法

驱动程序管理器不同于诸如 adbc_driver_postgresql 之类的特定于驱动程序的独立包。

对于特定于驱动程序的包,您可以使用该包提供的 connect 方法连接到目标数据库。例如,adbc_driver_postgresql.connect()adbc_driver_sqlite.connect()。驱动程序共享库已打包在相应的包中,并对用户透明地加载。

使用驱动程序管理器包时,无论连接到哪个数据库,您都使用相同的包和 API。但是,用户必须将数据库的驱动程序作为单独的步骤进行安装。驱动程序清单 (Driver manifests) 是改善用户体验的第一步,但未来还有更多工作计划,旨在使其像使用特定于驱动程序的包一样简单。

底层 API

首先,创建一个 AdbcDatabase,并传入 driver 以及(可选的)entrypoint。然后,创建一个 AdbcConnection

注意

有关应向 driver 参数传递什么内容,以及驱动程序管理器如何查找和加载驱动程序的详细信息,请参阅 ADBC 驱动程序管理器和清单

import adbc_driver_manager

# Note: You must install the driver shared library (.so, .dylib, .dll)
# separately
with adbc_driver_manager.AdbcDatabase(driver="PATH/TO/libadbc_driver_sqlite.so") as db:
    with adbc_driver_manager.AdbcConnection(db) as conn:
        pass

连接到第二个数据库可以在同一个会话中使用相同的代码完成,只需使用不同的 driver 参数即可。

DBAPI API

通过调用 dbapi.connect 方法并传入 driver 和(可选的)entrypoint 来使用 DBAPI。这些参数的工作方式与底层 API 相同。

from adbc_driver_manager import dbapi

# Note: You must install the driver shared library (.so, .dylib, .dll)
# separately
with dbapi.connect(driver="PATH/TO/libadbc_driver_sqlite.so") as conn:
   pass

API 参考

请参阅 API 参考:adbc_driver_manager