新闻和更新

SQLAlchemy 1.1.0b1 发布
永久链接

SQLAlchemy 1.1.0b1 版本现已发布。

这是 SQLAlchemy 全新 1.1 系列的第一个 Beta 版本。 建议用户确保他们的pip安装是最新的,以便只有在使用--pre标志显式指定时才会安装 1.1.0b1 版本。

1.1 系列包括各个方面的广泛增强和行为改进,包括 Core、ORM 和 dialects。 特别是,1.1 系列针对 Postgresql 数据库进行了特别多的新功能。 这很大程度上归功于这次代码库的用户贡献量大大增加,以及对 Postgresql 的整体关注,因为该平台继续以非常高的速度添加新功能。

版本 1.1 的主要亮点包括

  • Session 生命周期事件 - 在 ORM 中,整个Session生命周期现在可以通过每个对象的事件进行跟踪,从而允许在对象添加到会话、变为持久状态、分离、删除等时通知代码。
  • CTE 支持 INSERT、UPDATE、DELETE - 公用表表达式现在与 INSERT、UPDATE 和 DELETE 表达式完全兼容,这在 Postgresql 中最为常用。
  • Core 中的 JSON / ARRAY 支持,MySQL JSON - Postgresql JSON 和 ARRAY 类型得到了极大的增强,并且构建在 Core 版本的这些构造之上,这些构造可以通用地工作,而无需导入特殊的 Postgresql 数据类型。 特别是 JSON 类型也适用于较新的 MySQL 版本(从 5.7 版本开始),并提供与 Postgresql 版本一定程度的行为奇偶性。
  • 支持 LATERAL、TABLESAMPLE、WITHIN GROUP - 在许多新支持的 SQL 标准构造中,这些是广泛请求的 SQL 构造,所有这些都由 Postgresql 后端支持。
  • 支持 INSERT..ON CONFLICT - SQLAlchemy 首次涉足 “upserts” 领域,通过 Postgresql 9.5 的 “INSERT..ON CONFLICT” 语法提供,现在完全支持使用 Postgresql 特定版本的insert()函数。
  • 结果集改进 - 结果集的内部机制得到进一步增强,以更多地利用位置列定位,即基于行中已知的位置,而不是通过匹配字符串名称,将 SQL 表达式对象中的列与结果行本身进行匹配。 这提高了结果集系统的弹性和性能(大大减少了 “无法在行中找到列 X” 类型的错误)。

用户应仔细查看 SQLAlchemy 1.1 中的新增功能? 文档以及 Changelog,以注意哪些行为和问题受到影响。 我们要感谢为此次发布做出贡献的众多贡献者。

SQLAlchemy 1.1.0b1 可在 下载页面 上获取。