Sqlalchemy 1.4.0发布 - 以核心和orm中API的主要重新思考为特色

2021-03-16 17:41:00

在1.4系列中的三个测试版中,终于游览1.4.0版。这是在至少年度最广泛的SQLALCHEMY中最广泛的释放,其中包括COREAND ORM中最突出的API的重新考虑,大大修订内部,以及各种重要的新遗产和能力。

SQLALCHEMY 1.4建立自己作为SQLALCHEMY 2.0项目的起点,这将完全移动到Python 3,只能在1.4.0版中最终完成新的API。

现在统一用于为Coreand ORM生成选择和其他SQL语句的方法围绕修改和更能力的选择()构造,使得针对使用相同API和模式组成的核心或ORM上下文旁边的SQL查询。 session.execute()和connection.execute()方法已对齐,以便转换核心和orm查询和结果集是无缝的,并且SystemsBehaving与彼此一样实用。新的强调单纯性和明确的一致性打算允许学习和验证Sqlalchemy更加简单,同时还支持新的PythonParadigms,如Asyncio和Pep-484打字。

修订后的声明性映射系统,为许多新映射范例提供支持,包括使用装饰器而不是基本标签,而是对Python DataClasses的显式支持,以及" imperativemappings"这是与声明类注册表集成的经典Mapper()操作的改进版本。

核心Andorm的SQL编译普遍透明缓存。这取代了"烘焙查询缓存"先前版本的系统对ORM提供了一个可选的SQL缓存系统,具有新的方法,即在核心和ORM中为绝大多数DML和DQLSTATEMED提供全新的方法。该系统不仅缓存了语句的SQL字符串,还缓存了其CommassedResult处理基础结构,用于为每个查询生成新行和ormobject实例。

对于核心引擎的新修订的交易模型,也是更简单的orm会话,消除了传统Apisthat变得令人困惑,并以更稳定的方式运作。通过将未来= TrueFlag传递给Create_Engine()函数以及Session()构造函数,可以在1.4下完全启用新的交易模型。

对核心和orm的Python Asyncio完全支持。此Newsystem利用Greenlet上下文切换库,以适应在非常薄的异步前端的Sqlalchemy的适应直接针对Asyncio事件循环,不需要线程执行器。到目前为止,迄今为止包含对Asyncpg和AIOMySQL的支持。

大大改善了orm查询可扩展性,使用新的钩子和选项包括sessionevents.do_orm_execute()钩子和with_loader_criteria()函数,它们一起可以可靠地和预测地监测和修改所有ORM查询的额外标准; do_orm_execute()本身证明它的价值现在是唯一的钩子才能实现"水平分片" (在许多数据库中复用一个单板)和" dogpilecaching" (用缓存的结果对象预先抢占查询)示例。

现在正在进行对PEP-484和Mypy的本机支持,其中包含所有新的MYPY插件的Firstalpha版本,它与新公布的存根库SQLALCHEMY2-STUB一起运行。

没有数百个共同之传的帮助,释放1.4不会有可能,以及我们最近扩大的专用维护者团队;我们希望为Federico Caselli,Gord Thompson,Jonathanvanasco和Ramon Williams提供巨大的感谢,以便在百分之百名和努力实施主要新功能的努力以及我们的频繁用户支持贡献者以及亚历克斯格伦霍尔姆和西蒙国王。

对于从1.3迁移的用户,第一个停止是1.4中的新增功能,该文件将概述如何开始使用Qlalchemy 1.4。

版本1.4.0b3包括一些新功能和更改。特别是,在使用2.0样式中使用SELECT语句时,已经向策略命名为arow中的策略,以便这些名称MoredIbect地匹配首次要求的内容,包括特殊标签Cenarios时。还有一些额外的回归修复。

虽然1.4.0b2被播出为1.4.0之前的最后一个测试版,但我们希望在包括上述列命名变化的情况下获得更多的测试,因此为1.4.0b3。释放1.4.0最终持续期限在纽约周内继续预期。

感谢我们众多慷慨的贡献者以及我们的核心开发团队获得此测试版释放,并向世界发布所有发行版。

Sqlalchemy 1.4的迁移指南是最佳的开始,以获取'正在发生的事情概述:0.4中的新增功能'新的新增功能。这个完整的变更在更衣曲。

命名约定的Sqlalchemy 1.4.0b3是一个测试版释放,所以如果包含--pre标志,则只能安装hip。下载页面上提供了与Pypi Forsqlalchemy 1.4.0b3的链接。

版本1.4.0b2包括广泛的持续修复和添加了许多新的API和在1.4.0b1中发布的功能,也包括:

支持"表估值和#34;和相关的SQL函数表单,最突出地授予PostgreSQL阵列和JSON相关功能

对Python DataClasses的ORM声明性支持的新变体,vallingsQlalchemy列,关系()和其他构造,以便在inlinewithin dataclass字段()对象中

支持Mapper配置和拆除为单位注册表(),允许例如配置与特定声明性BaseTo关联的映射,同时不会影响来自其他基础的映射器

该版本还包含各种修复程序和缺少的行为,包括:

新&#34的各种修复和架构改进; lambda sql"具有_loader_criteria()功能的内在的功能

它希望1.4.0b2将是1.4.0最终之前的最后一个测试版,它本身应该在未来几周内发布。

在1.4.0最终发布后,2.0分支将被移动到Master和Sqlalchemy' Sython 3只有系统支持rype注释可以开始。

1.4 / 2.0系列的最终目标是使SQLALCHEMY更容易学习,更加一致,更可靠。

大量的贡献者以及我们的核心开发团队帮助我们让我们到第二个测试版,每个人都应该受到尊敬的感谢和感激之情。

SQLALCHEMY 1.4的迁移指南是最佳地点,以获得'正在发生的事情概述:什么'新的1.4完整的changeLog在ChangeLog。

命名约定的Sqlalchemy 1.4.0b2是一个测试版,所以如果包含--pre标志,则只有安装了spile pip。下载页面上提供了与Pypi Forsqlalchemy 1.4.0b2的链接。

版本1.3.23包含一个特定于DialectSUCH的错误修正数组,如Oracle,PostgreSQL和MySQL。 与所有版本一样,我们' d感谢所有贡献者的所有贡献者。 由于oracledialect中的回归,即新的隔离级别功能导致Oracle数据库连接的回归是必要的1.3.22的即时释放是必需的。 甲骨文。 如果此视图不可应用,或者如果在检索默认IsolationLevel时发生任何其他错误,则新编辑将优雅地降低1.3.21行为。 正如所有版本所在的情况一样,我们喜欢感谢所有贡献者,以便快速识别这个问题。