看起来像MySQLdb,psycopg2和cx_Oracle有很多用于连接数据库的simillar接口。所以创建一个人可以这样使用的工厂听起来是合理的:
conn = DBDriverFactory("MySQL", connectionDetails)
但首先我要确保:
我知道django和炼金术应该做这些事情,但我正在寻找一些非常轻巧和简单(但高效而优雅)的东西。
答案 0 :(得分:0)
这不作为“轻量级和简单”解决方案存在的原因是大多数SQL数据库引擎使用不同的SQL语法,不同的DB-API参数化以及有时略微不同的语义,因此更改数据库并不像更改数据库那么简单要使用的DB-API模块。真正的抽象需要解析SQL并生成适合正在使用的数据库的新SQL。
我不知道任何尝试这样做的软件包,因为常见的方法(更容易)是从更容易解析的形式生成特定于引擎的SQL(比如类似于SQLAlchemy和Django的ORM的ORM类)你创造。)