SQLAlchemy 0.5有哪些新特性?

关于本文档

本文档介绍了2008年10月12日发布的SQLAlchemy 0.4版和2010年1月16日发布的SQLAlchemy 0.5版之间的变化。

文件日期:2009年8月4日

本指南记录了影响用户将他们的应用程序从0.4系列SQLAlchemy迁移到0.5的API更改。它也适用于基本SQLAlchemy中的工作,它只涵盖了0.4,并且似乎甚至还有一些旧的0.3ism。请注意,SQLAlchemy 0.5删除了许多在0.4系列范围内被弃用的行为,并且也弃用了更多特定于0.4的行为。

主要文档更改

文档的某些部分已经完全重写,可以作为新ORM功能的介绍。特别是,QuerySession对象在API和行为方面有着明显的区别,从根本上改变了许多基本方式,特别是构建高度自定义的ORM查询并处理陈旧的会话状态,提交和回滚。

弃用来源

另一个信息来源被记录在一系列单元测试中,说明了一些常见的Query模式的最新用法;这个文件可以在[source:sqlalchemy / trunk / test / orm_test_deprecations.py]中查看。

需求变更

对象关系映射

扩展ORM

在0.5中,我们正在采取更多方法来修改和扩展ORM。下面是一个总结:

模式/类型¶ T0>

默认情况下,连接池不再是threadlocal

0.4有一个不幸的默认设置“pool_threadlocal = True”,例如,当在单个线程中使用多个会话时会导致意外行为。这个标志现在在0.5。To re-enable 0.4’s behavior, specify pool_threadlocal=True to create_engine(), or alternatively use the “threadlocal” strategy via strategy="threadlocal".

* args Accepted,* args不再被接受

使用method(\*args)method([args])的策略是,如果方法接受表示固定结构的可变长度项集,它需要\*args如果该方法接受数据驱动的可变长度项目集合,则需要[args]

除去¶ T0>

重命名或移动

弃用¶ T0>