【问题标题】:Are there Python ORMs out there that support multiple independent databases concurrently in use?是否有 Python ORM 支持同时使用多个独立数据库?
【发布时间】:2010-04-03 21:10:35
【问题描述】:

我正在用 Python 编写一个应用程序,我希望使用 sqlite 作为应用程序编辑的文档的后备存储,文档通常存在于内存中,但在应用程序保存时会保存到基于磁盘的数据库中。

理想情况下,我想使用 ORM 之类的东西来简化从我的 Python 应用程序代码中访问数据的过程。不幸的是,似乎大多数 Python ORM,包括 SQLAlchemy、SQLObject、Django 和 Storm,都将数据库连接(或引擎或其他)与表示表数据的类相关联,而不是这些类的实例。这将这些 ORM 限制为在所有实例中使用单个数据库连接。由于我想支持同时打开多个文档,所以这对我不起作用。

是否有任何 ORM 支持 Python 中的这种使用模型? Bazaar 似乎支持这一点,但它已经过时了,乍一看似乎还有一些其他的缺点。

感谢您的任何建议!

【问题讨论】:

    标签: python orm


    【解决方案1】:

    即将发布的 django 1.2 版本支持这一点。

    下面是它的描述: http://djangoadvent.com/1.2/multiple-database-support/

    【讨论】:

      【解决方案2】:

      SQLAlchemy 确实支持每个类的多个数据库连接,如下例所示:http://svn.sqlalchemy.org/sqlalchemy/trunk/examples/sharding/attribute_shard.py

      【讨论】:

      • 不幸的是,仅此一项似乎不符合我的需求。 ShardedSession 在构造过程中接受一个参数,将分片标识符映射到引擎。它似乎没有提供以后添加新引擎的方法。由于我希望支持动态打开和关闭文件,因此我需要能够在应用程序的生命周期内添加新引擎并删除现有引擎。
      猜你喜欢
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 2012-06-12
      • 2011-11-10
      • 2016-10-07
      • 2020-09-06
      • 2015-07-07
      • 1970-01-01
      相关资源
      最近更新 更多