SQLAlchemy 是 Python SQL 工具箱和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效、高性能地访问数据库,并被适配为一种简单的 Pythonic 域语言。
SQLAlchemy 1.4.30 版本的更新内容如下:
[orm] [bug]
修正了这样一个问题:对于同一个类,多次调用 registry.map_imperatively() 会产生一个意外的错误,而不是目标类已被映射的信息性错误。
registry.map_imperatively()
[orm] [bug] [asyncio]
在 AsyncSession 类中增加了缺失的 AsyncSession.invalidate() 方法。
AsyncSession
AsyncSession.invalidate()
[orm] [bug] [regression]
修正了 1.4.23 中出现的回归问题,该回归在某些情况下会导致加载器选项被错误处理,从而会导致 TypeError。
TypeError
修复了 ORM 回归问题,其中,如果现有构造针对固定表,则针对现有 aliased() 构造调用aliased()函数将无法生成正确的 SQL。
aliased()
修复了Select.correlate_except()方法在传递None值或无参数时,在 ORM 上下文中使用时不会关联任何元素。
Select.correlate_except()
None
修复了 1.3 版本中的回归问题,其中"子查询加载"加载程序策略如果用于使用Query.from_statement()或Select.from_statement()的查询,则会失败并带有堆栈跟踪的问题
Query.from_statement()
Select.from_statement()
[sql] [bug] [postgresql]
在系统中增加了额外的规则,即从 Python 字面意义上确定 TypeEngine 的实现,以便对类型进行第二层调整
[sql] [bug]
在将方法对象传递到 SQL 构造时添加了信息性错误消息
[mypy] [bug]
修复了运行 id 守护程序模式时 Mypy 崩溃的问题,该模式是由内部 mypy Var实例上的缺少属性引起的。
Var
[asyncio] [usecase]
向 asyncio 驱动程序使用的 DBAPI 连接接口添加了新的方法AdaptedConnection.run_async()这允许在无法使用await关键字的同步式函数中直接针对基础"驱动程序"连接调用方法。
AdaptedConnection.run_async()
await
[postgresql] [usecase]
为 UUID 数据类型添加了字符串渲染,因此用 "literal_binds" 对使用该类型的语句进行字符串化,将为 PostgreSQL 后端渲染一个合适的字符串值。
UUID
[postgresql] [bug] [asyncpg]
改进了对 asyncpg 处理 TIME WITH TIMEZONE 的支持,这一点并没有完全实现。
[postgresql] [bug]
修正了对需要转义字符的枚举值数组的处理。
[mysql] [change]
在 MySQL 和 MariaDB dialect 初始化中,用等价的 SELECT @@variable 替换 SHOW VARIABLES LIKE 语句。这应该可以避免 SHOW VARIABLES 引起的互斥,提高初始化性能。
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
评论删除后,数据将无法恢复
SQLAlchemy 1.4.30 发布,Python ORM 框架
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