SQLAlchemy 1.3.20 发布了。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射(ORM)框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。
本次更新内容如下:
ORM 相关
ArgumentError
如果将的目标参数Query.join()
设置为未映射的对象,则会引发一个更详细的信息。引擎相关
SQLAlchemyError
或子类的非字符串对象 (如某些第三方方言)将无法正确字符串化的问题。SQL 相关
pickle.dumps()
针对Over
构造的操作 会产生递归溢出的问题。column()
同时被添加到多个table()
的情况下,不会发生错误。对于Column
和 Table
对象来说,这个错误被忽视了。现在会在发生这种情况时引发一个ArgumentError
。PostgreSQL 相关
Comparator.any()
和 Comparator.all()
方法,以实现对否定的直接“ NOT”运算,而不是否定比较运算符。ENUM
测试过程中发出 CREATE TYPE 或 DROP TYPE 时,该类型将不查询架构转换图,以查看该类型是否存在。此外,修复了以下问题:如果在单个 DDL 序列中多次遇到相同的枚举,则“检查”查询将重复运行,而不是依赖于缓存的值。MySQL 相关
with_for_update()
一起使用的 "skip_locked "关键字在 MariaDB 后端使用时将发出警告,然后将被忽略。在SQLAlchemy 1.4 中,这是一个过时的行为,因为请求 "skip locked "的应用程序正在寻找一个在这些后端上不可用的非阻塞操作。cube
,lateral
在 MySQL 8.0.1 和 8.0.14,分别增加; 这表示如果将这些术语用作表或列标识符名称,则将用引号引起来。MSSQL 相关
authentication=ActiveDirectoryIntegrated
(没有用户名和密码)没有以 Azure DW 实例可接受的方式构造 ODBC 连接字符串。其他更新
Engine.dispose()
时,以下池参数没有被传播到新创建的池中的问题: pre_ping
,use_lifo
。另外,recycle
和 reset_on_return
参数现在会被传播到 AssertionPool
类中。(文/开源中国)