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

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

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


0.2.6

发布日期:Thu Jul 20 2006

  • [无标签]
    对模式进行了大规模改进,以允许真正的复合主键和外键约束,通过新的  ForeignKeyConstraint 和 PrimaryKeyConstraint  对象。现有的主键/外键创建方法没有改变,但在幕后使用这些新对象。表的创建和反射现在更加面向表而不是面向列。
    参考:#76
  • [无标签]
    对 MapperExtension 调用方案进行了彻底改进,之前的工作效果不是很好
  • [无标签]
    对 ActiveMapper 进行了调整,支持自引用关系
  • [无标签]
    对 objectstore(在 activemapper/threadlocal 中)进行了轻微重新排列,以便 SessionContext 被引用为 ‘.context’ 而不是直接子类化。
  • [无标签]
    如果在导入 activemapper 时激活了 mod,activemapper 将使用 threadlocal 的 objectstore
  • [无标签]
    对 URL 正则表达式进行了小修复,以允许带有 ‘@’ 的文件名
  • [无标签]
    修复了 Session expunge/update 等的问题…需要更多清理。
  • [无标签]
    select_table mappers 仍然 不总是编译
  • [无标签]
    修复了 Boolean 数据类型
  • [无标签]
    将 count()/count_by() 添加到 assignmapper 代理的方法列表中;这也将它们添加到 activemapper 中
  • [无标签]
    连接异常包装在 DBAPIError 中
  • [无标签]
    ActiveMapper 现在支持从数据库自动加载列定义,如果在映射内部类中提供了 autoload = True 属性。目前这不支持反射任何关系。
  • [无标签]
    延迟列加载可能会在某些情况下破坏 flush() 中的连接状态,已修复
  • [无标签]
    expunge() 在级联时无法工作,已修复。
  • [无标签]
    修复了级联操作中的潜在无限循环
  • [无标签]
    添加了“synonym()”函数,应用于属性,使一个属性名与另一个属性名相同,以便覆盖属性并允许原始属性名在 select_by() 中可访问。
  • [无标签]
    修复了在子句构造中的类型问题,特别有助于 polymorphic_union 的类型问题(CAST/ColumnClause 将其类型传播到代理列)
  • [无标签]
    映射器编译工作正在进行中,总有一天会成功……将 MapperProperty 对象的初始化移动到所有映射器创建后,以更好地处理循环编译。现在所有属性都调用 do_init()方法,如果有的话,它们更加了解自己的“继承”状态。
  • [无标签]
    禁止在自引用关系或与继承映射器(也是自引用关系)的关系上急切加载。
  • [无标签]
    减少了查询._get 中的绑定参数大小,以取悦挑剔的 oracle。
    参考:#244
  • [无标签]
    在 table.create()/table.drop()和 table.exists()中添加了‘checkfirst’参数。
    参考:#234
  • [无标签]
    一些其他正在进行的继承修复。
    参考:#245
  • [无标签]
    属性/backref/orphan/history-tracking 调整如常…

0.2.5

发布日期:2006 年 7 月 8 日 星期六

  • [无标签]
    修复了 select_by()中的无限循环错误,如果遍历到相互引用的两个映射器。
  • [无标签]
    将所有 unittests 升级为将‘./lib/’插入 sys.path,解决了新的 setuptools PYTHONPATH 破坏行为。
  • [无标签]
    进一步修复属性/依赖关系等等…
  • [无标签]
    对于未连接 DynamicMetaData 时的错误处理进行了改进。
  • [无标签]
    MS-SQL 支持基本正常(使用 pymssql 进行测试)。
  • [无标签]
    在组内的 UPDATE 和 DELETE 语句的排序现在按照主键值的顺序进行,以获得更确定的排序。
  • [无标签]
    现在每个对象的 after_insert/delete/update 映射器扩展都是按对象而不是按对象-按表调用的。
  • [无标签]
    进一步修复/重构映射器编译。

0.2.4

发布日期:2006 年 6 月 27 日 星期二

  • [无标签]
    当映射器在映射类上设置 init.name 时,支持 python 2.3 的 try/except。
  • [无标签]
    修复了线程本地引擎仍会自动提交的错误,尽管事务正在进行中。
  • [无标签]
    惰性加载和延迟加载操作需要父对象在会话中才能执行操作;而以前操作只会返回一个空列表或 None,现在会引发异常。
  • [无标签]
    如果给定对象曾经附加到的会话被垃圾回收,Session.update()会稍微宽松一些;否则仍然需要显式从先前的会话中删除实例。
  • [无标签]
    修复了映射器编译,检查更多错误条件。
  • [无标签]
    修复了与排序/限制/偏移量结合使用时的急切加载小问题。
  • [无标签]
    非常引人注目:在‘CREATE TABLE’和‘(<其余部分>’之间添加了一个空格,因为这就是 MySQL 指示非保留字表名的方式……
    参考:#206
  • [无标签]
    进一步修复继承,与许多对多关系相��的正确保存。
  • [无标签]
    修复了指定 mysql 方言的显式模块时的错误。
  • [无标签]
    当 QueuePool 超时时,会引发 TimeoutError 而不是错误地建立另一个连接
  • [无标签]
    在池中使用 Queue.Queue 的用法已被替换为一个本地修改版本(在 py2.3/2.4 中有效!),它使用 threading.RLock 作为互斥锁。这是为了修复一个报告的情况,其中 ConnectionFairy 的 del()方法在 Queue 的 get()方法中被调用,然后通过 put()方法将其连接返回给 Queue,除非使用 threading.RLock,否则会导致可重入挂起。
  • [无标签]
    如果主键列有外键约束,postgres 不会在主键列上放置 SERIAL 关键字
  • [无标签]
    ConnectionFairy 上的 cursor()方法允许传播特定于数据库的扩展参数
    参考:#221
  • [无标签]
    惰性加载绑定参数正确传播列类型
    参考:#225
  • [无标签]
    新的 MySQL 类型:MSEnum、MSTinyText、MSMediumText、MSLongText 等。对于数字类型中的 MS 特定长度/精度参数提供更多支持,补丁由 Mike Bernson 提供
  • [无标签]
    对连接池 invalidate()进行了一些修复
    参考:#224

0.2.3

发布日期:2006 年 6 月 17 日(星期六)

  • [无标签]
    对映射器编译进行了彻底的改造。这允许映射器以任何顺序构建,并且它们之间的关系在首次使用映射器时编译。
  • [无标签]
    修复了级联行为中的一个相当严重的速度瓶颈,特别是在使用反向引用时
  • [无标签]
    属性仪器模块已完全重写;现在更简单、更清晰,稍微更快。一个属性的“历史”不再在每次更改时进行微观管理,而是在实例首次加载时创建一个“CommittedState”对象的一部分。HistoryArraySet  已经消失,列表属性的行为现在更加开放(即它们不再是集合)。
  • [无标签]
    内部使用 py2.4 的“set”构造,当“set”不可用/需要排序时,会回退到 sets.Set。
  • [无标签]
    修复了事务控制的问题,使得重复的 rollback()调用不会失败(在更大的 try/except 事务块中 flush()引发异常时会失败得相当严重)
  • [无标签]
    ”relation()“的”foreignkey“参数也可以是一个列表。修复了自动外键检测
    参考:#151
  • [无标签]
    修复了模式名称的表在 MetaData 对象中未正确索引的 bug
  • [无标签]
    修复了重新定义“key”属性的 Column 未进行类型转换的 bug
    参考:#207
  • [无标签]
    修复了 URL 的‘port’属性,如果存在的话,应该是一个整数
  • [无标签]
    修复了一个旧 bug,即如果一个映射为“secondary”的多对多表有额外列,则删除操作不起作用
  • [无标签]
    修复了针对 UNION 查询的映射错误
  • [无标签]
    修复了当没有 DB 驱动程序时抛出的错误异常类
  • [无标签]
    当反射一个不存在的表时,添加了 NonExistentTable 异常抛出
    参考:#138
  • [无标签]
    对 ActiveMapper 进行了小修复,涉及一对一反向引用,其他重构
  • [无标签]
    映射类中重写的构造函数从原始类获取 namedoc
  • [无标签]
    修复了 selectresult.py 中关于映射扩展的小错误
    参考:#200
  • [无标签]
    对 cascade_mappers 进行了小调整,目前支持程度不是很强
  • [无标签]
    对 between()、column.between()进行了一些修复,更好地传播类型信息
    参考:#202
  • [无标签]
    如果对象无法构造,则不会添加到会话中
    参考:#203
  • [无标签]
    CAST  函数已经成为自己的子句对象,并在 ansicompiler 中具有自己的编译函数;允许 MySQL 静默忽略大多数 CAST 调用,因为  MySQL 似乎只支持具有 Date 类型的标准 CAST 语法。为字符串、整数等提供与 MySQL 兼容的 CAST 支持,一个 TODO

0.2.2

发布日期:2006 年 6 月 5 日星期一

  • [无标签]
    对多态继承行为进行了重大改进,使其能够与邻接列表表结构一起使用
    参考:#190
  • [无标签]
    对继承关系进行了重大修复和重构,增加了更多单元测试
  • [无标签]
    修复了 create_engine()中的“echo_pool”标志
  • [无标签]
    修复了文档中的错误信息,删除了与 threadlocal 策略一起使用 close()不安全的不正确信息(完全安全!)
  • [无标签]
    create_engine()可以接受字符串或 Unicode 格式的 URL
    参考:#188
  • [无标签]
    firebird 支持部分完成;感谢 James Ralston 和 Brad Clements 的努力。
  • [无标签]
    Oracle 的 url 转换出现问题,已修复,如果‘database’字段存在,则将 host/port/sid 传递给 cx_oracle 的 makedsn(),否则使用‘host’字段中的直接 TNS 名称
  • [无标签]
    修复了使用 unicode 条件进行 query.get()/query.load()的问题
  • [无标签]
    selectables 上的 count()函数现在使用表主键或第一列而不是“1”作为条件,还使用标签“rowcount”而不是“count”。
  • [无标签]
    对“映射到多个表”功能进行了基本清理,更正确地记录
  • [无标签]
    恢复了 global_connect()函数,连接到名为“default_metadata”的 DynamicMetaData 实例。如果在 Table 中不使用 MetaData 参数,则将使用默认元数据。
  • [无标签]
    修复了会话级联行为、entity_name 传播的问题
  • [无标签]
    将 unittest 重新组织到子目录中
  • [无标签]
    对 threadlocal 连接嵌套模式进行了更多修复

0.2.1

发布日期:Mon May 29 2006

  • [无标签]
    pool参数传递给 create_engine()方法
  • [无标签]
    修复了 URL,如果未解析则引发异常,不会将空字段传递给数据库连接字符串(例如像user:host@/db这样的字符串在 postgres 上会出错)。
  • [无标签]
    在 Mapper 插入并尝试获取新主键值时进行了小修复
  • [无标签]
    重写了  TLEngine 的一半,用于“strategy=”threadlocal”的 ComposedSQLEngine。现在它正确地实现了  engine.begin()/engine.commit(),与  connection.begin()/trans.commit()完全嵌套。添加了约六个单元测试。
  • [无标签]
    在 pool.Pool 中有一个主要的“duh”,忘记将 WeakValueDictionary 放回。应该检查此项的单元测试也被悄悄地遗漏了。修复了单元测试以确保 ConnectionFairy 正确地退出作用域。
  • [无标签]
    给 SingletonThreadPool 添加了占位符 dispose()方法,但目前什么也没做
  • [无标签]
    当引发异常时自动调用 rollback(),但仅在没有正在进行的事务时(即更像是自动提交)。
  • [无标签]
    修复了在 sqlite 中没有 sqlite 模块时引发异常的问题
  • [无标签]
    为关联对象文档添加了额外的示例细节
  • [无标签]
    Connection 增加了对已关闭的检查

0.2.0

发布日期:Sat May 27 2006

  • [无标签]
    对引擎系统进行了全面改造,以前是 SQLEngine 现在是由各种组件组成的 ComposedSQLEngine,包括方言、连接提供程序等。这影响了所有的 db 模块以及 Session 和 Mapper。
  • [无标签]
    create_engine 现在只接受 RFC-1738 样式的字符串:driver://user:password@host:port/database
    更新 此格式通常但并非完全符合 RFC-1738,包括在“scheme”部分接受下划线,而不是短横线或点。
  • [无标签]
    对连接作用域方法进行了全面重写,Connection 对象现在可以直接执行子句元素,明确添加了“close”以及引擎/ORM 中的支持,以正确处理关闭,不再依赖于内部的 del 来将连接返回到池中。
    参考:#152
  • [无标签]
    对  Session 接口和作用域进行了全面改造。使用 hibernate 风格的方法,包括  query(class)、save()、save_or_update()等。默认情况下不安装 threadlocal  作用域。提供了一个绑定接口到特定 Engines 和/或 Connections 的界面,使得底层 Schema 对象不需要绑定到  Engine。添加了一个简单地聚合多个引擎之间事务的基本 SessionTransaction 对象。
  • [无标签]
    对映射器的依赖性和“级联”行为进行了全面改进;依赖逻辑从  properties.py  中分离出来到一个单独的模块“dependency.py”中。“级联”行为现在可以明确控制,正确实现“delete”,“delete-orphan”等。依赖系统现在可以在刷新时确定子对象是否有父对象,以便更好地决定如何更新该子对象在数据库中关于删除的情况。
  • [无标签]
    对  Schema 进行了全面改革,建立在 MetaData 对象的基础上而不是 Engine。整个 SQL/Schema 系统可以在没有任何  Engine 的情况下使用,仅由显式 Connection 对象执行。通过 BoundMetaData  存在“bound”方法论用于模式对象。ProxyEngine 通常不再需要,由 DynamicMetaData 替代。
  • [无标签]
    实现了真正的多态行为,修复
    参考:#167
  • [无标签]
    “oid”系统已完全移入编译时行为;如果它们在不可用的情况下用于 order_by,order_by 不会被编译,修复
    参考:#147
  • [无标签]
    包装方式进行了全面改革;“mapping”现在是“orm”,“objectstore”现在是“session”,旧的“objectstore”命名空间通过“threadlocal”模块加载(如果使用)。
  • [无标签]
    现在通过“import ”调用 mods。扩展优于 mods,因为 mods 是全局 monkeypatching
  • [无标签]
    修复 add_property 以便将属性传播到继承映射器
    参考:#154
  • [无标签]
    backrefs 自动生成在其原始属性的主映射器上,可以指定主/次要连接参数以覆盖。有助于它们与多态映射器的使用
  • [无标签]
    实现了“table exists”函数
    参考:#31
  • [无标签]
    ”create_all/drop_all”添加到 MetaData 对象
    参考:#98
  • [无标签]
    对拓扑排序算法进行了改进和修复,以及更多单元测试
  • [无标签]
    文档中添加了教程页面,也可以使用自定义 doctest 运行器运行以确保其正常工作。文档通常已进行全面改进以处理新的代码模式
  • [无标签]
    许多其他修复,重构。
  • [无标签]
    迁移指南可在 Wiki 上找到:www.sqlalchemy.org/trac/wiki/02Migration


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

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