Python有一个用于SQL和NoSQL的ORM

DoR*_*ard 10 python orm

我正在构建一个我想发布的应用程序,我将用Python编写应用程序.我不想锁定任何特定数据库sql/nosql到我的应用程序的使用.如何设计应用程序或模型层以不强制执行SQL/NOSQL方式来存储数据.

是否存在兼容两种存储的ORM?我找不到一个.通常情况下我会使用sqlalchemy来确保人们可以使用MySQL/PostgreSQL/MSSQL /等,但是将NOSQL添加到图片中似乎比我最初想象的要复杂得多.

我有一些要求,如:

  • 我不想强制执行任何存储后端,这是为了确保它不会吓到人们使用该应用程序.
  • 它必须支持数据模式迁移(在安装或升级过程中)

如果您对我如何构建这些要求有所了解,我将非常感谢您的帮助.是否可以创建这样的结构:

    +-----+
    + app +
    +-----+
       |
+-------------+
+ Data Access +
+-------------+
        |
+-----------+
+ SQL/NOSQL +
+-----------+
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 6

不,没有那样的东西.

ORM或RDBMS可以依赖SQL作为抽象底层数据库的最小标准.大多数ORM都建立在Python DB API之上(所有RDBMS Python绑定都或多或少地完成了).

对于NoSQL,既没有标准查询语言也没有标准驱动程序API.

所以没有什么比这更适合两个世界了.

已经有为NoSQL语言定义通用查询语言的方法.

例如,有JsonIQ

http://www.jsoniq.org/

但实际上并没有太多帮助你.