SQLAlchemy 0.5有什么新功能?¶

关于此文档

本文档描述了上次发布于2008年10月12日的SQLAlchemy版本0.4和上次发布于2010年1月16日的SQLAlchemy版本0.5之间的更改。

文件日期:2009年8月4日

本指南记录了影响用户将其应用程序从0.4系列SQLAlchemy迁移到0.5的API更改。也建议那些在 Essential SQLAlchemy 它只覆盖了0.4,甚至还包含一些旧的0.3主义。请注意,sqlAlchemy 0.5删除了在整个0.4系列中被弃用的许多行为,并且还弃用了更多特定于0.4的行为。

主要文件变更

文档的某些部分已经完全重写,可以作为新ORM特性的介绍。这个 QuerySession 特别是对象在API和行为上有一些明显的差异,这从根本上改变了许多基本的方法,特别是在构建高度定制的ORM查询和处理陈旧的会话状态、提交和回滚方面。

折旧来源

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

需求变更

对象关系映射

扩展ORM

在0.5版本中,我们将使用更多的方法来修改和扩展ORM。以下是总结:

模式/类型

默认情况下,连接池不再是线程本地的

0.4有一个不幸的默认设置“pool_threadlocal=true”,当在一个线程中使用多个会话时,会导致意外行为。此标志现在在0.5中关闭。要重新启用0.4的行为,请指定 pool_threadlocal=Truecreate_engine() 或者使用“threadlocal”策略通过 strategy="threadlocal" .

* 接受ARGs, * args不再接受

政策与 method(\*args) VS method([args]) 是,如果该方法接受表示固定结构的可变长度项集,则需要 \*args . 如果该方法接受一组可变长度的数据驱动项,则需要 [args] .

远离的

重命名或移动

已弃用