驱动管理器

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。但是,用户必须单独安装其数据库的驱动。 驱动清单是改善用户体验的第一步,但我们计划进行更多工作,使其像使用特定驱动的软件包一样简单。

低级 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。这些参数与低级 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