首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQLAlchemy 2.0.0 正式发布,Python ORM 框架

出品|开源中国

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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230128A03CEW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券