SQLAlchemy 2.0.0 是 SQLAlchemy 2.0 系列的首个可用于生产环境的版本,现已正式 GA。
SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。
2.0 旨在适应现代化 Python 的实际使用,开发团队花费了三年多的时间来升级 SQLAlchemy 用例模型和架构。他们表示,自 2006 年 SQLAlchemy 发布第一个版本以来出现了三个主要的 Python 范式:Python 3、pep-484 类型支持和 asyncio。此次 SQLAlchemy 的 2.0 更新正是为了适应 Python 社区的不断变化。而且与 16 年前相比,Python 社区的规模变得更大,拥有更多新的开发者,他们对严格性、易用性,以及在文档方面有更高的标准。
据介绍,SQLAlchemy 2.0 系列的历史始于四年前的 2018 年 8 月 8 日,其中包含一些关于如何统一 SQLAlchemy 的核心概念和 ORM 查询的简短想法。而真正的“SQLAlchemy 2.0”概念的第一个计划于当年 11 月形成,主要集中在大幅简化 Core 执行和事务 API,以及寻求跨 Core 和 ORM 统一查询这两个领域。
基础概念的变化非常明显,以至于 SQLAlchemy 2.0 分为两个主要阶段。第一阶段是 SQLAlchemy 1.4 系列,它提供了一个全新的统一 Core/ORM SQL 查询系统,同时构建在一个新的通用语句缓存架构之上。此阶段为 SQLAlchemy 2.0 的 SQL 构建方法(最小 pep-484 类型支持)提供了完整的实现,同时完全维护了遗留的查询API。与此版本一起,一个全面的 迁移路径 灵感来自 Python 2->3 迁移过程中的经验教训,它描述了如何移植应用程序,以便它们可以继续在 SQLAlchemy 1.4 中运行,同时完全向前兼容 SQLAlchemy 2.0。
第二阶段是 SQLAlchemy 2.0 系列,它删除了大部分已弃用的元素,将剩余的元素(主要是 Query)降级为长期“遗留”状态,仅完全迁移至 Python 3,同时添加了许多在新架构之上构建的新功能,充分利用 Python 3 特性(包括数据类、枚举、内联注释)以及新的统一查询架构。
这种方法的关键优势在于,最重要和迄今为止风险最大的架构更改,即在新缓存层之上重写 Core/ORM 查询的更改,已经在 SQLAlchemy 1.4 的生产环境中使用了将近两年。因此,虽然 SQLAlchemy 2.0 在被所有开发者使用后肯定会有很多新问题,但它们不应该是“基础方法中的新裂缝”,因为架构基础已经被广泛使用。
官方预计绝大多数问题将与新类型系统,以及现有应用程序调整以使用新 API 的问题有关。
SQLAlchemy 2.0 是一个非常大的版本更新,它有两个迁移指南:
- Major Migration Guide - 介绍了如何使应用程序达到 API 兼容性,以便能够在 SQLAlchemy 1.4 或 2.0 中同等运行
- SQLAlchemy 2.0 新功能 - 提供了应用程序在 SQLAlchemy 2.0 上运行后可用的所有新功能和 API。
详细更新说明查看发布公告。
还没有评论,来说两句吧...