python - 寻找db驱动程序的工厂

时间:2012-02-20 10:19:09

标签: python database

看起来像MySQLdb,psycopg2和cx_Oracle有很多用于连接数据库的simillar接口。所以创建一个人可以这样使用的工厂听起来是合理的:

conn = DBDriverFactory("MySQL", connectionDetails)

但首先我要确保:

  1. 我没有错过一些更好的解决方案,我的想法并不是真的很愚蠢。
  2. 没有任何众所周知的工作解决方案可以防止重新发明轮子。
  3. 我知道django和炼金术应该做这些事情,但我正在寻找一些非常轻巧和简单(但高效而优雅)的东西。

1 个答案:

答案 0 :(得分:0)

这不作为“轻量级和简单”解决方案存在的原因是大多数SQL数据库引擎使用不同的SQL语法,不同的DB-API参数化以及有时略微不同的语义,因此更改数据库并不像更改数据库那么简单要使用的DB-API模块。真正的抽象需要解析SQL并生成适合正在使用的数据库的新SQL。

我不知道任何尝试这样做的软件包,因为常见的方法(更容易)是从更容易解析的形式生成特定于引擎的SQL(比如类似于SQLAlchemy和Django的ORM的ORM类)你创造。)