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

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

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


0.2.2

发布日期:Mon Jun 05 2006

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

0.2.1

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

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

0.2.0

发布日期:2006 年 5 月 27 日 星期六

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

0.2.8

发布日期:Tue Sep 05 2006

  • [无标签]
    连接方法和文档进行清理。在查询字符串中指定自定义 DBAPI 参数,在 ‘create_engine’ 中使用 ‘connect_args’ 参数,或通过 ‘create_engine’ 的 ‘creator’ 函数指定自定义创建函数。
  • [无标签]
    在 Pool 中新增了“recycle”参数,在 create_engine 中为“pool_recycle”,默认为 3600 秒;此时,超过这个年龄的连接将被关闭并替换为新连接,以处理自动关闭陈旧连接的数据库。
    参考:#274
  • [无标签]
    改变了使用池化连接的“使无效”语义;将指示底层连接记录在下次调用时重新连接。“使无效”还将在底层调用 connection.cursor() 时抛出任何错误时自动调用。这将希望连接池能够重新连接到已停止并重新启动的数据库,而无需重新启动连接的应用程序。
    参考:#121
  • [无标签]
    哎呀!教程中的 doctest 已经很长时间没有修复。
  • [无标签]
    在映射器上的 add_property() 方法会执行“编译所有映射器”步骤,以防给定的属性引用了未编译的映射器(就像教程中的情况!)
  • [无标签]
    在创建之前检查 pg 序列是否已存在
    参考:#277
  • [无标签]
    如果通过 MapperExtension.get_session(例如使用 sessioncontext 插件等)建立了上下文会话,则惰性加载操作将默认使用该会话,如果父对象尚未与会话持久化。
  • [无标签]
    惰性加载不会为没有数据库标识的对象触发(为什么?请参阅 www.sqlalchemy.org/trac/wiki/WhyDontForeignKeysLoadData
  • [无标签]
    unit-of-work 对“删除孤立”级联中的“孤儿”对象进行更好的检查,对于某些情况下父级不可用于级联的情况。
  • [无标签]
    映射器可以根据与属性包的交互来判断它们的对象是否为“孤儿”。当对象相互附加和分离时,此检查基于为每个关系维护的状态标志。
  • [无标签]
    现在使用“delete-orphan”声明自引用关系是无效的(因为上述检查将使它们无法保存)
  • [无标签]
    当工作单元试图将它们作为关系的一部分 flush() 时,对于对象是否为会话的一部分进行了更好的检查。
  • [无标签]
    语句执行支持在表达式中多次使用相同的 BindParam 对象;简化了位置参数的处理。Bill Noon 在理解基本思想时做得很好。
    参考:#280
  • [无标签]
    postgres 反射移至使用 pg_schema 表,可以通过传递 use_information_schema=True 参数给 create_engine 进行覆盖。
    参考:#60, #71
  • [无标签]
    在  MetaData、Table、Column 中添加了 case_sensitive 参数,根据父模式项是否具有标志的非 None  设置或标识符名称是否全为小写来自动确定。当设置为 True  时,对具有混合或大写标识符的标识符应用引号。对已知为保留字或包含其他非标准字符的标识符也自动应用引号。各种数据库方言可以覆盖所有这些行为,但目前它们都使用默认行为。已在  postgres、mysql、sqlite、oracle 上进行测试。需要在 firebird、ms-sql  上进行更多测试。这是正在进行的工作的一部分
    参考:#155
  • [无标签]
    更新了单元测试,可以在没有安装任何 pysqlite 的情况下运行;pool 测试使用模拟的 DBAPI
  • [无标签]
    urls 支持密码中的转义字符
    参考:#281
  • [无标签]
    向 UNION 查询添加了 limit/offset(尽管 oracle 尚未支持)
  • [无标签]
    在  DateTime 和 Time 类型中添加了“timezone=True”标志。到目前为止,postgres  将其转换为“TIME[STAMP] (WITH|WITHOUT) TIME ZONE”,以便更可控地控制时区的存在(如果可用,psycopg2  会返回带有 tzinfo 的 datetimes,这可能会与不带 tzinfo 的 datetimes 造成混淆)。
  • [无标签]
    修复了在 distinct、**kwargs 与 SelectResults count()中使用 query.count()的问题
    参考:#287
  • [无标签]
    当 autoload 失败时,从 MetaData 中注销 Table;
    参考:#289
  • [无标签]
    导入 py2.5 的 sqlite3
    参考:#293
  • [无标签]
    修复 startswith()/endswith()的 unicode 问题
    参考:#296

0.2.7

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

  • [无标签]
    设置引号设施,以便在所有查询/创建/删除中使用时可以为单个表、模式和列标识符启用特定于数据库的引号。通过在  Table 或 Column 中启用“quote=True”,以及在 Table 中启用“quote_schema=True”来启用。感谢  Aaron Spike 的出色努力。
  • [无标签]
    assignmapper 设置 is_primary=True,导致设置冗余映射器时未引发任何错误,已修复
  • [无标签]
    向 Mapper 添加了 allow_null_pks 选项,允许某些主键列为空的行(即在映射到外连接等情况下)
  • [无标签]
    修改了  unitofwork,不再在“new”列表或 UOWTask “objects”  列表中维护排序;相反,新对象在与会话注册为新对象时被标记为排序标识符,然后 INSERT 语句在映射器 save_obj  中进行排序。INSERT 排序基本上一直推迟到刷新周期的最后。这样,UOWTask  中发生的各种排序和组织(特别是循环任务排序)就不必担心维护顺序(它们本来也不会)
  • [无标签]
    修复了外键的反射,如果引用的表尚未加载,则自动加载
  • [无标签]
  • 将 URL 查询字符串参数传递给 connect() 函数
  • 参考:#256
  • [无标签]
  • Oracle 布尔类型
  • 参考:#257
  • [无标签]
    在关系中自定义主/次连接条件 默认传播到反向引用。指定 backref() 将覆盖此行为。
  • [无标签]
    在 sql.Join 中更好地检查模糊的连接条件;在 PropertyLoader 中传播到更好的错误消息(即 relation()/backref())以处理无法合理确定连接条件的情况。
  • [无标签]
    SQLite 在表反射时正确创建 ForeignKeyConstraint 对象。
  • [无标签]
    由于为所做的更改而进行的池调整。只有在连接实际成功时,溢出计数器才会递减。添加了一个测试脚本来尝试测试这一点。
    参考:#224
  • [无标签]
    修复了 MySQL 反射默认值为 PassiveDefault 的问题
  • [无标签]
    在 MS-SQL 中添加了反射的 ‘tinyint’、‘mediumint’ 类型。
    参考:#263#264
  • [无标签]
    SingletonThreadPool 具有大小并进行清理,因此只有给定数量的线程本地连接保留下来(对于大量丢弃线程的 SQLite 应用程序是必需的)
  • [无标签]
    修复了延迟加载器中的小 pickle bug(s)
    参考:#265#267
  • [无标签]
    修复了 MySQL 反射中可能出现的错误,某些版本在执行 SHOW CREATE TABLE 时返回数组而不是字符串
  • [无标签]
    修复了映射到连接时的延迟加载问题
    参考:#1770
  • [无标签]
    所有 create()/drop() 调用都有一个名为“connectable”的关键字参数。“engine” 已被弃用。
  • [无标签]
    修复了 ms-sql connect() 与 adodbapi 的兼容��问题
  • [无标签]
    在 Select() 中添加了“nowait”标志
  • [无标签]
    继承检查使用 issubclass() 而不是直接的 mro 检查,以确保类 A 继承自 B,使映射继承更灵活地对应于类继承
    参考:#271
  • [无标签]
    当对具有 ORDER BY 子句的 SelectResults 调用聚合函数(如 max、min 等)时,SelectResults 将使用子选择
    参考:#252
  • [无标签]
    修复了类型问题,以便更轻松地使用特定于数据库的类型;修复了 mysql 文本类型以使其与此方法配合使用
    参考:#269
  • [无标签]
    一些修复 sqlite 日期类型组织的问题
  • [无标签]
    添加了 MSTinyInteger 到 MS-SQL
    参考:#263


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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器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月前
|
关系型数据库 MySQL 测试技术
SqlAlchemy 2.0 中文文档(七十一)(3)
SqlAlchemy 2.0 中文文档(七十一)
20 0
|
4月前
|
SQL Oracle 关系型数据库
SqlAlchemy 2.0 中文文档(七十一)(5)
SqlAlchemy 2.0 中文文档(七十一)
31 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
SqlAlchemy 2.0 中文文档(五十九)(7)
SqlAlchemy 2.0 中文文档(五十九)
22 0
|
4月前
|
SQL 缓存 Oracle
SqlAlchemy 2.0 中文文档(五十九)(1)
SqlAlchemy 2.0 中文文档(五十九)
160 0
|
4月前
|
SQL 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(五十九)(2)
SqlAlchemy 2.0 中文文档(五十九)
30 0
|
4月前
|
SQL 关系型数据库 MySQL
SqlAlchemy 2.0 中文文档(五十九)(4)
SqlAlchemy 2.0 中文文档(五十九)
28 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
SqlAlchemy 2.0 中文文档(五十九)(5)
SqlAlchemy 2.0 中文文档(五十九)
31 0