新闻和更新
SQLAlchemy 1.3.0 发布
2019年3月4日 永久链接
SQLAlchemy 1.3.0 版本现已发布。
1.3.0 版本是 1.3 系列中的第一个正式版本,此前发布了三个 beta 版本。该版本代表了自 1.2 版本发布以来的过去十四个月的新功能开发。
1.3 系列的重点领域是 ORM 行为改进、Core 行为改进,以及对不再适用于现代 Python 数据库开发环境的旧行为和功能的大量弃用。随着 Python 2 维护即将结束,1.3 版本开始倾向于一个更长期的计划,即为仅限 Python 3 世界量身定制的简化版 SQLAlchemy。
主要亮点包括
- ORM 关系现在可以指向一个AliasedClass映射,即一个类,它本质上映射到一个替代的可选对象,如别名或子查询。关系到别名类的功能取代了非主映射器的最后一个用例,并提供了一个功能更强大的模式。
- 1.2 中添加的“扩展 IN”功能允许单个绑定参数与任何数据库后端上任意大小的 IN 列表一起使用,现在也支持空列表。随着此功能的完成,为后续功能版本中 IN 表达式的默认行为设置为“扩展 IN”奠定了基础。
- 对关联代理扩展进行了一系列重大改进。
- 加载器选项系统的主要行为改进,包括支持更多用例和更好的错误消息
- 通过基本JSON数据类型,支持 SQLite JSON 持久性和表达式操作。
总的来说,大多数更改与 SQLAlchemy 1.2 应用程序完全向后兼容,除了硬性移除了长期弃用的将 SQL 短语自动强制转换为文本 (请参阅 完全移除将字符串 SQL 片段强制转换为 text())。用户应仔细查看 1.3 中的新增功能? 中的完整迁移说明系列,以了解已更改内容的全貌,并始终在推广到生产环境之前针对 1.3 系列充分测试现有应用程序。
1.3.0 以及所有 beta 版本的完整变更日志位于 变更日志;我们要感谢为此次发布做出贡献的众多贡献者。
SQLAlchemy 1.3.0 可在下载页面上获取。
SQLAlchemy 1.3.0b3 发布
2019年2月8日 永久链接
SQLAlchemy 1.3.0b3 版本现已发布。
1.3.0b3 版本有望成为 1.3 的最后一个 beta 版本,因为没有计划进行其他重大更改。此版本进一步限制了已弃用的行为,最值得注意的是移除了大多数将包含 SQL 片段的 Python 字符串自动强制转换为text()对象的实例;此行为自 1.0 以来一直在发出警告,因此现在不应被应用程序使用;由于它已成为一个晦涩难懂的功能,因此它看起来更像是一个错误而不是已弃用的行为,因此警告现在是完整的异常消息。
该版本还包括 SQL 标识符和引用领域中的各种相关改进,以及一些 ORM 特定的改进。最后,Nose 测试框架的支持已被移除;SQLAlchemy 多年来已在 Py.test 上实现了标准化,并且无论如何 Nose 在 Python 3 下不再可用作测试平台。
有关 1.3 系列新增功能的概述,请参阅 1.3 中的新增功能? 完整变更日志可在 变更日志 中找到。
SQLAlchemy 1.3.0b3 可在下载页面上获取。
SQLAlchemy 1.3.0b2 发布
2019年1月26日 永久链接
SQLAlchemy 1.3.0b2 版本现已发布。
作为 1.3 系列中的第二个 beta 版本,1.3.0b2 版本侧重于展望未来,确保所有早已弃用的功能和行为都充分发出警告,以便更好地在后续版本中移除它们,并添加一些主要的新弃用。目标是更加关注 ORM 和 Core 使用 API,以便更轻松地过渡到最终适合仅限 Python 3 世界的下一代 SQLAlchemy 版本。
1.3.0b2 中的主要更改包括
- 现在可以将AliasedClassconstruct 指定为关系的目标,完全取代了“非主映射器”功能的剩余理由,该功能已被弃用。
- 现在可以将convert_unicode参数在Engine和String中已被弃用,因为所有受支持的 DBAPI 现在都提供 unicode 处理。
- “threadlocal”引擎策略(长期以来的过时行为)终于被弃用。
- 对于文档中已注明为已弃用的所有函数、方法和参数,都会发出弃用警告。
有关 1.3 系列新增功能的概述,请参阅 1.3 中的新增功能? 完整变更日志可在 变更日志 中找到。
SQLAlchemy 1.3.0b2 可在下载页面上获取。