SQLAlchemy 1.4.30 发布,Python ORM 框架

来源: OSCHINA
编辑: Alias_Travis
2022-01-21 07:20:00

SQLAlchemy 是 Python SQL 工具箱和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效、高性能地访问数据库,并被适配为一种简单的 Pythonic 域语言。

SQLAlchemy 1.4.30 版本的更新内容如下:

orm

  • [orm] [bug]

    修正了这样一个问题:对于同一个类,多次调用 registry.map_imperatively() 会产生一个意外的错误,而不是目标类已被映射的信息性错误。

  • [orm] [bug] [asyncio]

    AsyncSession 类中增加了缺失的 AsyncSession.invalidate() 方法。

  • [orm] [bug] [regression]

    修正了 1.4.23 中出现的回归问题,该回归在某些情况下会导致加载器选项被错误处理,从而会导致 TypeError

  • [orm] [bug] [regression]

    修复了 ORM 回归问题,其中,如果现有构造针对固定表,则针对现有 aliased() 构造调用aliased()函数将无法生成正确的 SQL。

  • [orm] [bug]

    修复了Select.correlate_except()方法在传递None值或无参数时,在 ORM 上下文中使用时不会关联任何元素。

  • [orm] [bug] [regression]

    修复了 1.3 版本中的回归问题,其中"子查询加载"加载程序策略如果用于使用Query.from_statement()Select.from_statement()的查询,则会失败并带有堆栈跟踪的问题

sql

  • [sql] [bug] [postgresql]

    在系统中增加了额外的规则,即从 Python 字面意义上确定 TypeEngine 的实现,以便对类型进行第二层调整

  • [sql] [bug]

    在将方法对象传递到 SQL 构造时添加了信息性错误消息

mypy

  • [mypy] [bug]

    修复了运行 id 守护程序模式时 Mypy 崩溃的问题,该模式是由内部 mypy Var实例上的缺少属性引起的。

asyncio

  • [asyncio] [usecase]

    向 asyncio 驱动程序使用的 DBAPI 连接接口添加了新的方法AdaptedConnection.run_async()这允许在无法使用await关键字的同步式函数中直接针对基础"驱动程序"连接调用方法。

postgresql

  • [postgresql] [usecase]

    UUID 数据类型添加了字符串渲染,因此用 "literal_binds" 对使用该类型的语句进行字符串化,将为 PostgreSQL 后端渲染一个合适的字符串值。

  • [postgresql] [bug] [asyncpg]

    改进了对 asyncpg 处理 TIME WITH TIMEZONE 的支持,这一点并没有完全实现。

  • [postgresql] [bug]

    修正了对需要转义字符的枚举值数组的处理。

mysql

  • [mysql] [change]

    在 MySQL 和 MariaDB dialect 初始化中,用等价的 SELECT @@variable 替换 SHOW VARIABLES LIKE 语句。这应该可以避免 SHOW VARIABLES 引起的互斥,提高初始化性能。

  • [mysql] [bug]

    从 asyncmy dialect 中删除了对 PyMySQL 的不必要依赖。

更多详情可查看:https://docs.sqlalchemy.org/en/14/changelog/changelog_14.html#change-1.4.30

展开阅读全文
4 收藏
分享
1 评论
4 收藏
分享
返回顶部
顶部
返回顶部
顶部