SqlAlchemy 2.0 中文文档(七十一)(4)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: SqlAlchemy 2.0 中文文档(七十一)

SqlAlchemy 2.0 中文文档(七十一)(3)https://developer.aliyun.com/article/1562395


0.1 更新日志

原文:docs.sqlalchemy.org/en/20/changelog/changelog_01.html

0.1.7

发布日期:2006 年 5 月 5 日 星期五

  • [无标签]
    对拓扑排序算法进行了一些修复
  • [无标签]
    添加了对 Postgres 的 DISTINCT ON 支持(只需提供 distinct=[col1,col2…])
  • [无标签]
    向 sql 表达式添加了 mod(%运算符)
  • [无标签]
    从继承映射器继承的“order_by”映射器属性
  • [无标签]
    修复了映射器在更新/删除时使用的列类型
  • [无标签]
    当 convert_unicode=True 时,反射失败,已经修复
  • [无标签]
    类型 类型 类型!仍然无法工作….必须再次使用 TypeDecorator 😦
  • [无标签]
    mysql 二进制类型将数组输出转换为缓冲区,修复了 PickleType
  • [无标签]
    最终解决了 attributes.py 的内存泄漏问题
  • [无标签]
    基于支持每个数据库的数据库的 unittests 进行了限定
  • [无标签]
    修复了列默认值会破坏插入对象的 VALUES 子句的错误
  • [无标签]
    修复了表定义中带有模式名称会强制引擎连接的错误
  • [无标签]
    修复了在 INSERT/UPDATE 中子查询中括号无法正确工作的问题
  • [无标签]
    HistoryArraySet 获得了 extend()方法
  • [无标签]
    修复了除=之外其他比较运算符的 lazyload 支持
  • [无标签]
    修复了 lazyload 问题,其中连接条件中的两个比较指向相同的列
  • [无标签]
    向映射器添加了“construct_new”标志,将使用 new 来创建实例,而不是 init(在 0.2 中是标准的)
  • [无标签]
    将 selectresults.py 添加到 SVN 中,上次漏掉了
  • [无标签]
    对允许从表到自身的关联表进行多对多关系的微调
  • [无标签]
    对多态示例中使用的“translate_row”函数进行了小修复
  • [无标签]
    create_engine 使用 cgi.parse_qsl 来读取查询字符串(在 0.2 中已经取消)
  • [无标签]
    对 CAST 操作符进行微调
  • [无标签]
    修复了函数名称 LOCAL_TIME/LOCAL_TIMESTAMP -> LOCALTIME/LOCALTIMESTAMP
  • [无标签]
    修复了编译中 ORDER BY/HAVING 的顺序

0.1.6

发布日期:2006 年 4 月 12 日 星期三

  • [无标签]
    由 Rick Morrison,Runar Petursson 提供的对 MS-SQL 的支持
  • [无标签]
    来自 J. Ellis 的最新 SQLSoup
  • [无标签]
    ActiveMapper 初步支持继承(Jeff Watkins)
  • [无标签]
    添加了一个“mods”系统,允许修改/增强核心功能的可插拔模块,使用函数“install_mods(*modnames)”。
  • [无标签]
    添加了第一个“mod”,SelectResults,它修改了 mapper selects 以返回将范围转换为 LIMIT/OFFSET 查询的生成器(Jonas Borgstr?)
  • [无标签]
    将 Mapper 的查询功能分解为一个独立的 Query 对象,该对象以 Session 为中心。这提高了 mapper.using(session)的性能,并使其他功能成为可能。
  • [无标签]
    对 objectstore/Session 进行了重构,现在保存对象的官方方式是通过 flush()方法。Session 的 begin/commit 功能被分解为 LegacySession,仍然被建立为默认行为,直到 0.2 系列。
  • [无标签]
    类型系统在查询编译时绑定到引擎,而不是在模式构建时。这简化了类型系统以及代理引擎。
  • [无标签]
    向  mapper 添加了‘version_id’关键字参数。此关键字应引用一个具有整数类型的 Column  对象,最好是非空的,该对象将用于在映射表上跟踪版本号。此数字在每次保存操作时递增,并在 UPDATE/DELETE  条件中指定,以便将其计入返回的行数,如果接收到的值不是预期计数,则会导致 ConcurrencyError。
  • [无标签]
    向  mapper 添加了‘entity_name’关键字参数。现在,通过类对象以及可选的 entity_name 参数(默认为 None)将  mapper 与类关联起来。可以为类创建任意数量的主 mapper,由实体名称限定。这些类的实例将通过其 entity_name 限定的  mapper 发出所有加载和保存操作,并为否则等效的对象在标识映射中维护单独的标识。
  • [无标签]
    对属性系统进行了全面改进。代码已经澄清,并且修复以支持对象属性的适当多态行为。
  • [无标签]
    向 Select 对象添加了“for_update”标志
  • [无标签]
    一些用于反向引用的修复
  • [无标签]
    修复了 postgres1 DateTime 类型
  • [无标签]
    文档页面大部分已切换为 Markdown 语法

0.1.5

发布日期:2006 年 3 月 27 日星期一

  • [无标签]
    向 SQLEngine 添加了 SQLSession  概念。此对象跟踪从连接池检索连接以及正在进行的事务。向 SQLEngine 添加了 push_session()和  pop_session()方法,它们将新的 SQLSession  推送/弹出到引擎上,允许在前一个连接“嵌套”内进行第二个连接的操作,从而允许嵌套事务。关于 SQLSession,以后肯定会有其他技巧。
  • [无标签]
    在  objectstore.Session 中添加了 nest_on 参数。这是一个 SQLEngine 或引擎列表,每当此 Session  成为活动会话(通过 objectstore.push_session()或等效方式)时,将调用  push_session()/pop_session()。这允许工作单元 Session 利用嵌套事务功能,而无需在引擎上显式调用  push_session/pop_session。
  • [无标签]
    将 objectstore/unitofwork 分解为单独的“会话作用域”和“uow 提交重要工作”
  • [无标签]
    添加了  populate_instance() 方法到 MapperExtension。允许扩展修改对象属性的填充。此方法可以调用另一个映射器上的  populate_instance() 方法,以代理从一个映射器到另一个映射器的属性填充;还内置了一些行翻译逻辑以帮助完成此操作。
  • [no_tags]
    修复了 Oracle8 兼容性的 “use_ansi” 标志,将 JOIN 转换为与 = 和 (+) 操作符的比较,通过了基本的单元测试。
  • [no_tags]
    优化了对 Oracle LIMIT/OFFSET 的支持。
  • [no_tags]
    Oracle 反射使用 ALL_** 视图而不是 USER_**,以从中获取更大的反射列表。
  • [no_tags]
    修复了 Oracle 外键反射。
    参考:#105
  • [no_tags]
    objectstore.commit(obj1, obj2, …) 添加了一个额外的步骤,以查找属性上的私有关系并删除子对象,即使它不是全局提交。
  • [no_tags]
    对使用继承的映射器进行了大量修复,加强了映射器上关系的概念,该关系指向映射器的“本地”表而不是它继承的表。可以让更复杂的组合模式与延迟/急加载一起使用。
  • [no_tags]
    添加了支持,使映射器能够根据相同表从其他映射器继承,只需指定与父/子映射器相同的表。
  • [no_tags]
    对属性系统进行了一些次要的速度改进,关于实例化和填充新对象。
  • [no_tags]
    修复了 MySQL 二进制单元测试。
  • [no_tags]
    INSERTs 可以接收子句元素作为 VALUES 参数,而不仅仅是文字值。
  • [no_tags]
    支持调用多标记函数,即 schema.mypkg.func()。
  • [no_tags]
    将 J. Ellis 的 SQLSoup 模块添加到扩展包中。
  • [no_tags]
    添加了“多态”示例,说明了从一个映射器加载多种对象类型的方法,第二种方法使用了新的 populate_instance() 方法。对映射器、UNION 构造进行了小的改进,以帮助示例。
  • [no_tags]
    改进/修复了 session.refresh()/session.expire()(之前可能称为“invalidate”)。
  • [no_tags]
    添加了 session.expunge(),完全从当前会话中删除一个对象。
  • [no_tags]
    添加了 *args, **kwargs 传递到 engine.transaction(func),从而使事务化装饰器函数更容易创建。
  • [no_tags]
    为 ResultProxy 添加了迭代器接口:“for row in result:…”
  • [no_tags]
    添加了断言到 tx = session.begin(); tx.rollback(); tx.begin(),即回滚后不能使用它。
  • [no_tags]
    在 SQLite 中的绑定参数修复中添加了日期转换,使日期能够与 pysqlite1 兼容。
  • [no_tags]
    对子查询进行了改进,以更智能地构建其 FROM 子句。
    参考:#116
  • [no_tags]
    将 PickleType 添加到类型中。
  • [no_tags]
    修复了两个与绑定参数相关的列标签错误:现在在所有相关情况下,绑定参数键名都是从列“标签”生成的,以利用过长名称规则,并检查是否与列名相同的“tablename_colname”发生了奇怪的冲突。
  • [无标签]
    对工作单元文档和其他文档部分进行了重大改进。
  • [无标签]
    修复了属性错误,如果对象已提交,则其惰性加载的列表如果尚未加载则会被清除。
  • [无标签]
    向引擎、连接池添加了 unique_connection()方法,以返回不属于线程本地上下文或任何当前事务的连接。
  • [无标签]
    在池化连接中添加了 invalidate()函数。将从池中移除连接。但仍需要处理引擎自动重新连接到陈旧数据库的问题。
  • [无标签]
    向列元素添加了 distinct()函数,这样您就可以执行 func.count(mycol.distinct())。
  • [无标签]
    向 Mapper 添加了“always_refresh”标志,创建一个始终刷新从数据库获取/选择的对象属性的映射器,覆盖任何已做的更改。

0.1.4

发布日期:2006 年 3 月 13 日星期一

  • [无标签]
    create_engine()现在使用通用化参数;主机/主机名、数据库/数据库名、密码/密码等对于所有引擎连接。使引擎 URI 更加“通用”。
  • [无标签]
    添加了对嵌入到列子句中的 SELECT 语句的支持,使用标志“scalar=True”。
  • [无标签]
    对  EagerLoading  进行了另一次全面改进,当与继承的映射器一起使用时;改进了急加载正确确定其别名查询的功能,还有针对与具有继承映射器的关系设置的情况,将创建针对特定于映射器本身的表的连接(即不会针对任何继承/进一步下降继承链的表),这可以通过使用自定义主/次要连接来覆盖。
  • [无标签]
    在 mapper.py 中添加了 J.Ellis 的补丁,使得 selectone()在查询返回多个对象行时抛出异常,selectfirst()则不会抛出异常。还添加了 selectfirst_by(与 get_by 同义)和 selectone_by。
  • [无标签]
    向 Column 添加了 onupdate 参数,将在更新语句执行时执行 SQL/python。还将“for_update=True”添加到所有 DefaultGenerator 子类。
  • [无标签]
    添加了对 Oracle 表反射的支持,由 Andrija Zaric 贡献;仍需解决一些关于复合主键/字典选择的错误。
  • [无标签]
    提交了一个初始的 Firebird 模块,等待测试。
  • [无标签]
    向 sql.ClauseParameters 字典对象添加了作为 compiled.get_params()结果的对象,对绑定参数进行了延迟类型处理,以便更容易访问原始值。
  • [无标签]
    为索引、列默认值、连接池、引擎构建添加了更多文档。
  • [无标签]
    对类型系统的构建进行了全面改进。使用了更简单的继承模式,以便任何通用类型都可以轻松子类化,无需 TypeDecorator。
  • [无标签]
    添加了“convert_unicode=False”参数到 SQLEngine,将导致所有 String 类型执行 unicode 编码/解码(使 Strings 表现得像 Unicodes)
  • [无标签]
    添加了‘encoding=”utf8”’参数到 engine。给定的编码将用于 Unicode 类型内所有编码/解码调用以及当 convert_unicode=True 时的 Strings。
  • [无标签]
    改进了对 UNION 映射的支持,添加了 polymorph.py 示例以说明多类映射对 UNION 的映射
  • [无标签]
    修复了 SQLite LIMIT/OFFSET 语法
  • [无标签]
    修复了 Oracle LIMIT 语法
  • [无标签]
    添加了 backref()函数,允许反向引用具有将传递给 backref 的关键字参数。
  • [无标签]
    Sequences 和 ColumnDefault 对象可以独立执行()/标量()
  • [无标签]
    SQL 函数(即 func.foo())可以独立执行()/标量()
  • [无标签]
    修复了 SQL 函数,使得符合 ANSI 标准的函数,即 current_timestamp 等,不指定括号。所有其他函数都需要。
  • [无标签]
    添加了 settattr_clean 和 append_clean 到 SmartProperty,可以设置属性而不触发“dirty”事件或任何历史记录。用法如:myclass.prop1.setattr_clean(myobject, ‘hi’)
  • [无标签]
    改进了映射器在使用列默认值时的支持;映射器将从语句的执行绑定参数(预转换)中提取预执行的默认值,以将其填充到保存对象的属性中;如果任何 PassiveDefaults 已触发,则将从数据库中后获取行以填充对象。
  • [无标签]
    添加了‘get_session().invalidate(*obj)’方法到 objectstore,实例将在下一次属性访问时刷新自己。
  • [无标签]
    改进了 SQL 函数调用,包括一个“engine”关键字参数,以便它们可以独立执行()或标量(),还向 SQLEngine 添加了 func 访问器
  • [无标签]
    修复了 MySQL4 自定义表引擎,即 TYPE 而不是 ENGINE
  • [无标签]
    稍微增强了日志记录,包括时间戳和一种可配置的格式化系统,而不是完整的日志记录系统
  • [无标签]
    对来自 TG 团队的 ActiveMapper 类进行了改进,包括多对多关系
  • [无标签]
    添加了 Double 和 TinyInt 支持到 mysql


SqlAlchemy 2.0 中文文档(七十一)(5)https://developer.aliyun.com/article/1562397

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(六十八)(3)
SqlAlchemy 2.0 中文文档(六十八)
26 0
|
4月前
|
Oracle 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(七十一)(1)
SqlAlchemy 2.0 中文文档(七十一)
29 1
|
4月前
|
SQL Oracle 关系型数据库
SqlAlchemy 2.0 中文文档(七十一)(5)
SqlAlchemy 2.0 中文文档(七十一)
31 0
|
4月前
|
Oracle 关系型数据库 数据库
SqlAlchemy 2.0 中文文档(七十一)(2)
SqlAlchemy 2.0 中文文档(七十一)
30 0
|
4月前
|
关系型数据库 MySQL 测试技术
SqlAlchemy 2.0 中文文档(七十一)(3)
SqlAlchemy 2.0 中文文档(七十一)
20 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
SqlAlchemy 2.0 中文文档(五十九)(7)
SqlAlchemy 2.0 中文文档(五十九)
22 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
SqlAlchemy 2.0 中文文档(五十九)(5)
SqlAlchemy 2.0 中文文档(五十九)
31 0
|
4月前
|
SQL 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(五十九)(4)
SqlAlchemy 2.0 中文文档(五十九)
28 0
|
4月前
|
SQL 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(五十九)(3)
SqlAlchemy 2.0 中文文档(五十九)
33 0
|
4月前
|
SQL Oracle 关系型数据库
SqlAlchemy 2.0 中文文档(五十九)(6)
SqlAlchemy 2.0 中文文档(五十九)
29 0