taogeYT / pydbclib

Python database toolkit for humans
Apache License 2.0
20 stars 3 forks source link

通过已有驱动连接方式连接,存在Bug #2

Closed Kian-Miller closed 3 years ago

Kian-Miller commented 3 years ago

通过已有驱动连接方式连接

import pymysql con = pymysql.connect(user="user", password="password", database="test") db = pydbclib.connect(driver=con) 上述代码在pymysql-0.10.1版本中,存在Bug,pymysql.connect(),导致模块名并不是最顶级的模块名,如图所示 image ,正常的话返回的应该是pymysql,而通过驱动连接导致返回的是pymysql.connections.....,而这导致不存在self.dbapi.paramstyle,从而报错。

Kian-Miller commented 3 years ago

暂时的解决方法是: 将site-packages/pydbclib/drivers.py中CommonDriver.init函数中的bug内容,改为以下

if hasattr(driver_param, "cursor"):
            self.driver_name = str(driver_param.__class__.__module__).split('.')[0]

但未测试其它驱动模型,不知道是否具有普适性。