Release: 1.4.25 | Release Date: September 22, 2021

SQLAlchemy 1.4 Documentation

0.2换热器

0.2.8

Released: Tue Sep 05 2006
  • [no_tags]

    清除连接方法+文档。在查询字符串中指定的自定义DBAPI参数“connect-args”参数到“create-engine”,或通过“creator”函数到“create-engine”的自定义创建函数。

  • [no_tags]

    将“recycle”参数添加到pool,在create_引擎上是“pool_recycle”,默认为3600秒;此时间之后的连接将关闭并替换为新的连接,以处理自动关闭过时连接的db

    References: #274

  • [no_tags]

    用池连接更改了“使语义无效”;将指示基础连接记录在下次调用时重新连接。如果在对connection.cursor()的基础调用中引发任何错误,也将自动调用invalidate。希望这将允许连接池重新连接到已停止并启动的数据库,而不重新启动连接应用程序。

    References: #121

  • [no_tags]

    哎呀!辅导医生考试被打破了相当长的一段时间。

  • [no_tags]

    如果给定的属性引用了未编译的映射器,则在映射器上的add_property()方法将执行“编译所有映射器”步骤(与教程中的方法相同!)

  • [no_tags]

    创建前检查PG序列是否已存在

    References: #277

  • [no_tags]

    如果上下文会话是通过mapperextension.get_会话建立的(因为它使用的是sessionContext插件等),则如果父对象未与会话保持一致,则默认情况下,惰性加载操作将使用该会话。

  • [no_tags]

    对于没有数据库标识的对象,惰性加载不会启动(为什么?请参阅https://www.sqlalchemy.org/trac/wiki/WhyDontForeignKeysLoadData)

  • [no_tags]

    工作单元可以更好地检查作为“删除孤立对象”级联一部分的“孤立”对象,以确定父对象不可从中级联的某些条件。

  • [no_tags]

    映射器可以根据与属性包的交互来判断其中一个对象是否是“孤立的”。此检查基于当对象彼此附加和分离时为每个关系维护的状态标志。

  • [no_tags]

    现在,声明与“删除孤立项”的自引用关系是无效的(因为上述检查将使它们无法保存)

  • [no_tags]

    改进了在工作单元寻求将对象作为关系的一部分刷新()时对作为会话一部分的对象的检查。

  • [no_tags]

    语句执行支持在表达式中多次使用同一bindparam对象;位置参数的简化处理。比尔·诺恩做得很好,想出了基本的想法。

    References: #280

  • [no_tags]

    Postgres反射移动到使用pg_模式表,可以用use_information_schema=true参数覆盖以创建_引擎。

    References: #60, #71

  • [no_tags]

    将区分大小写的参数添加到元数据、表、列中,根据父架构项的标志是否具有非无设置自动确定自身;如果没有,则根据标识符名称是否都是小写。当设置为真时,引用将应用于具有混合或大写标识符的标识符。在所有情况下,引用也会自动应用于已知为保留字或包含其他非标准字符的标识符。各种数据库方言可以覆盖所有这些行为,但目前它们都使用默认行为。使用postgres、mysql、sqlite、oracle进行测试。需要使用Firebird、MS SQL进行更多测试。正在进行的工作的一部分

    References: #155

  • [no_tags]

    单元测试更新为在未安装任何pysqlite的情况下运行;池测试使用模拟DBAPI

  • [no_tags]

    URL支持密码中的转义字符

    References: #281

  • [no_tags]

    为联合查询添加了限制/偏移量(尽管在Oracle中尚未添加)

  • [no_tags]

    在日期时间和时间类型中添加了“timezone=true”标志。到目前为止,Postgres会将此转换为“时间” [STAMP] (使用不使用)时区“,这样对时区存在的控制就更为可控(psycopg2返回带有TZINFO的日期时间(如果可用),这可能会与没有的日期时间产生混淆)。

  • [no_tags]

    修复为使用带有distinct的query.count(), * *带selectresults count()的Kwargs

    References: #287

  • [no_tags]

    当自动加载失败时,从元数据中注销表;

    References: #289

  • [no_tags]

    导入py2.5s sqlite3

    References: #293

  • [no_tags]

    StartsWith()/EndsWith()的Unicode修复

    References: #296

0.2.7

Released: Sat Aug 12 2006
  • [no_tags]

    设置引用功能,以便在所有查询/创建/删除中使用时,可以为单个表、架构和列标识符打开特定于数据库的引用。通过表或列中的“quote=true”以及表中的“quote_schema=true”启用。感谢亚伦·斯派克的出色努力。

  • [no_tags]

    assignmapper was setting is_primary=true,cause all sory mayem by not raising an error when redundant mapper was setting,fixed

  • [no_tags]

    向映射器添加了allow u null pks选项,允许一些主键列为空的行(即当映射到外部联接等时)

  • [no_tags]

    修改UnitOfWork,使其不在“新建”列表或UOWTSK“对象”列表中保持排序;相反,新对象在注册为会话的新对象时使用排序标识符进行标记,然后在映射器save_obj中对insert语句进行排序。插入顺序基本上一直被推到刷新周期的末尾。这样,UOWTSK中发生的各种类型和组织(尤其是循环任务排序)就不必担心维护顺序(无论如何它们都不是这样)。

  • [no_tags]

    修复了外键的反射,以便在尚未加载被引用表时自动加载该表

  • [no_tags]

    • 将url查询字符串参数传递给connect()函数

    References: #256

  • [no_tags]

    • Oracle布尔类型

    References: #257

  • [no_tags]

    关系中的自定义主/辅助联接条件 will 默认情况下传播到backrefs。指定backRef()将重写此行为。

  • [no_tags]

    更好地检查sql.join中是否存在不明确的连接条件;当无法合理确定连接条件时,会传播到propertyloader(即relation()/backref())中更好的错误消息。

  • [no_tags]

    SQLite在表反射时正确创建ForeignKeyConstraint对象。

  • [no_tags]

    由于对所做的更改而对池进行的调整。只有在连接实际成功时,溢出计数器才应递减。添加了一个测试脚本以尝试测试此。

    References: #224

  • [no_tags]

    将默认值的mysql反射固定为passivedefault

  • [no_tags]

    在MS-SQL中添加了反射的“tinyint”、“mediumnt”类型。

    References: #263, #264

  • [no_tags]

    singletonthreadpool有一个大小并执行清理过程,因此只有给定数量的线程本地连接可以保留(对于集中处理线程的sqlite应用程序是必需的)

  • [no_tags]

    用懒惰的装载机修复了小的腌菜错误

    References: #265, #267

  • [no_tags]

    修复了MySQL反射中某些版本返回数组而不是用于show create table调用的字符串时可能出现的错误

  • [no_tags]

    映射到联接时固定到延迟加载

    References: #1770

  • [no_tags]

    所有create()/drop()调用都有一个关键字参数“connectable”。发动机”已弃用。

  • [no_tags]

    修复了MS SQL Connect()与ADODABPI一起使用的问题

  • [no_tags]

    为select()添加了“nowait”标志

  • [no_tags]

    继承检查使用issubclass()而不是direct __mro__ 检查以确保类A继承自B,允许映射器继承更灵活地对应于类继承。

    References: #271

  • [no_tags]

    当对具有order by子句的selectresults调用聚合(即max、min等)时,selectresults将使用嵌套select。

    References: #252

  • [no_tags]

    对类型进行修复,以便更容易使用特定于数据库的类型;对MySQL文本类型进行修复,以便使用此方法

    References: #269

  • [no_tags]

    对sqlite日期类型组织的一些修复

  • [no_tags]

    已将mstinyinteger添加到ms-sql

    References: #263

0.2.6

Released: Thu Jul 20 2006
  • [no_tags]

    通过新的foreignkeyconstraint和primarykeyconstraint对象,对模式进行大修改,允许真正组合主键和外键约束。尚未更改创建主键/外键的现有方法,但在幕后使用这些新对象。表的创建和反射现在更加面向表而不是面向列。

    References: #76

  • [no_tags]

    对mapperextension调用方案的彻底修改,以前工作得不太好

  • [no_tags]

    调整到ActiveMapper,支持自引用关系

  • [no_tags]

    稍微重新排列到ObjectStore(在ActiveMapper/ThreadLocal中),使sessionContext被“.context”引用,而不是直接子类化。

  • [no_tags]

    如果导入activemapper时mod被激活,activemapper将使用threadlocal的objectstore。

  • [no_tags]

    对url regexp进行小修复,以允许文件名中包含“@”

  • [no_tags]

    对会话清除/更新等的修复…需要更多的清理。

  • [no_tags]

    选择表格映射器 仍然 不是一直在编译

  • [no_tags]

    修复了布尔数据类型

  • [no_tags]

    向assignmapper代理的方法列表中添加count()/count_by();这也将它们添加到activemapper

  • [no_tags]

    dbapierror中包含的连接异常

  • [no_tags]

    如果您提供一个 __autoload__ =true属性。目前,这不支持反映任何关系。

  • [no_tags]

    延迟的列加载可能会导致flush()中的连接状态出错。在某些情况下,这是固定的

  • [no_tags]

    expunge()无法处理cascade,已修复。

  • [no_tags]

    级联操作中潜在的无限循环已修复。

  • [no_tags]

    添加了“synonym()”函数,该函数应用于属性以使propname与另一个propname相同,以覆盖props并允许在select_by()中访问原始propname。

  • [no_tags]

    修正了子句构造中的类型,它专门帮助多态联合出现类型问题(cast/columnclause将其类型传播到代理列)

  • [no_tags]

    映射器编译工作正在进行中,总有一天它会工作……在创建所有映射器以更好地处理循环编译之后,围绕着映射器属性对象的初始化移动。现在对所有的属性调用do_init()方法,如果是这样的话,这些属性会更加了解它们的“继承”状态。

  • [no_tags]

    在自引用关系或到继承映射器的关系(也是自引用关系)上显式不允许预加载。

  • [no_tags]

    减少了查询中的绑定参数大小。

    References: #244

  • [no_tags]

    向table.create()/table.drop()以及table.exists()添加了“checkfirst”参数

    References: #234

  • [no_tags]

    对继承的其他一些正在进行的修复

    References: #245

  • [no_tags]

    属性/backref/orphan/history跟踪调整与往常一样…

0.2.5

Released: Sat Jul 08 2006
  • [no_tags]

    修正了select_by()中的无限循环错误,如果遍历命中了彼此引用的两个映射器

  • [no_tags]

    升级了所有UnitTests以将“./lib/”插入sys.path中,处理新的setuptools pythonpath终止行为

  • [no_tags]

    使用属性/依赖项等进一步修复…

  • [no_tags]

    改进了在未连接DynamicMetadata时的错误处理

  • [no_tags]

    MS-SQL支持主要工作(使用pymssql测试)

  • [no_tags]

    组内更新和删除语句的顺序现在是按主键值的顺序排列的,以便更确定地排序。

  • [no_tags]

    在插入/删除/更新映射器扩展之后,现在对每个对象调用,而不是对每个表的每个对象调用

  • [no_tags]

    映射器编译的进一步修复/重构

0.2.4

Released: Tue Jun 27 2006
  • [no_tags]

    尝试/映射器设置时除外 init.__name__ 在映射类上,支持python 2.3

  • [no_tags]

    修复了线程本地引擎在事务处理过程中仍然自动提交的错误。

  • [no_tags]

    延迟加载和延迟加载操作要求父对象在会话中执行该操作;而在该操作只返回空列表或不返回空列表之前,它现在会引发异常。

  • [no_tags]

    如果给定对象以前附加到的会话被垃圾收集,则session.update()稍微宽松一些;否则,仍然需要显式地从上一个会话中删除该实例。

  • [no_tags]

    修复映射器编译,检查更多错误条件

  • [no_tags]

    小补丁到预加载结合订购/限制/偏移

  • [no_tags]

    非常值得注意的是:在“create table”和“(<the restrict of it>”之间添加了一个空格,因为 that's how MySQL indicates a non- reserved word tablename.....

    References: #206

  • [no_tags]

    更多对继承的修复,与正确保存的多对多关系相关

  • [no_tags]

    修复了将显式模块指定为MySQL方言时的错误

  • [no_tags]

    当QueuePool超时时,它将引发TimeoutError,而不是错误地进行另一个连接。

  • [no_tags]

    队列。池中的队列使用已替换为本地修改的版本(适用于PY2.3/2.4!)它使用threading.rlock作为互斥对象。这是为了修复一个报告的情况,即在队列的get()方法中调用了ConnectionFairy的del_uuu()方法,然后通过put()方法返回其到队列的连接,除非使用threading.rlock,否则会导致重入挂起。

  • [no_tags]

    如果主键列具有外键约束,Postgres将不会在其上放置串行关键字。

  • [no_tags]

    connectionFairy上的cursor()方法允许传播特定于db的扩展参数

    References: #221

  • [no_tags]

    延迟加载绑定参数正确传播列类型

    References: #225

  • [no_tags]

    新的MySQL类型:msenum、mstinytext、msmediumtext、mslongext等。更多支持数字类型中特定于ms的长度/精度参数修补程序,由Mike Bernson提供

  • [no_tags]

    对连接池的某些修复使()无效

    References: #224

0.2.3

Released: Sat Jun 17 2006
  • [no_tags]

    要推迟对映射器编译的大修。这允许以任何顺序构造映射器,并在首次使用映射器时编译它们之间的关系。

  • [no_tags]

    修正了级联行为中一个相当大的速度瓶颈,特别是在使用backrefs时。

  • [no_tags]

    属性检测模块已经被完全重写;它现在大大简化和清晰,速度稍快。属性的“历史记录”不再是每个更改的微观管理,而是在首次加载实例时创建的“committedState”对象的一部分。HistoryArraySet已经不存在了,列表属性的行为现在更加开放(即它们不再是集合)。

  • [no_tags]

    PY2.4内部使用的“set”构造返回到set。当“set”不可用/需要排序时设置。

  • [no_tags]

    修复到事务控制,以便重复的rollback()调用不会失败(当flush()在更大的try/except事务块中引发异常时失败非常严重)

  • [no_tags]

    relation()的“foreignkey”参数也可以是列表。固定式自动钥匙检测

    References: #151

  • [no_tags]

    修复了在元数据对象中没有正确索引具有架构名称的表的错误。

  • [no_tags]

    修复了在resultproxy中重新定义了“key”属性的列未进行类型转换的错误。

    References: #207

  • [no_tags]

    将url的“port”属性固定为整数(如果存在)

  • [no_tags]

    修复了旧错误,如果映射为“辅助”的多对多表具有额外的列,则删除操作不起作用。

  • [no_tags]

    针对联合查询映射的错误修复

  • [no_tags]

    修复了在不存在db驱动程序时引发的错误异常类

  • [no_tags]

    添加了反映不存在的表时引发的不存在的异常

    References: #138

  • [no_tags]

    关于一对一的backrefs和其他重构,对activemapper的小修复

  • [no_tags]

    映射类中的重写构造函数获取 __name__ 和 __doc__ 从原始类

  • [no_tags]

    修复了selectresult.py中有关映射器扩展的小错误

    References: #200

  • [no_tags]

    对层叠映射器的小调整,目前不太支持函数

  • [no_tags]

    对between()、column.between()进行了一些修复,以便更好地传播键入信息

    References: #202

  • [no_tags]

    如果无法构造对象,则不会将其添加到会话中

    References: #203

  • [no_tags]

    cast函数已经用自己的编译函数在ansicompiler中生成了自己的子句对象;由于MySQL似乎只支持日期类型的标准cast语法,因此允许MySQL静默地忽略大多数cast调用。mysql兼容的字符串、ints等强制转换支持todo

0.2.2

Released: Mon Jun 05 2006
  • [no_tags]

    多态继承行为的重大改进,使其能够与邻接列表表结构一起工作

    References: #190

  • [no_tags]

    主要修复和重构继承关系总体上,更多的单元测试

  • [no_tags]

    修复了create_engine()上的“echo池”标志

  • [no_tags]

    修复到文档,删除了close()不安全的错误信息,与threadlocal策略一起使用(完全安全!)

  • [no_tags]

    create_engine()可以将URL作为字符串或Unicode

    References: #188

  • [no_tags]

    Firebird支持部分完成;感谢James Ralston和Brad Clements的努力。

  • [no_tags]

    Oracle URL转换已中断,已修复,将主机/端口/sid馈送到cx_oracle makedsn()中,如果存在“database”字段,则使用“host”字段中的直接tns名称。

  • [no_tags]

    修复为query.get()/query.load()使用Unicode标准

  • [no_tags]

    可选择项上的count()函数现在使用表主键或第一列而不是“1”作为条件,还使用标签“rowcount”而不是“count”。

  • [no_tags]

    清理了基本的“映射到多个表”功能,更准确地记录了这些功能

  • [no_tags]

    已还原全局_connect()函数,附加到名为“default_metadata”的dynamicmetadata实例。将元数据参数保留为表输出将使用默认元数据。

  • [no_tags]

    对会话级联行为、实体名称传播的修复

  • [no_tags]

    将UnitTests重新组织为子目录

  • [no_tags]

    对线程本地连接嵌套模式的更多修复

0.2.1

Released: Mon May 29 2006
  • [no_tags]

    创建_engine()的“pool”参数正确传播

  • [no_tags]

    对url的修复,如果不进行分析会引发异常,不会将空白字段传递给db connect字符串(在postgres上中断user:host@/db这样的字符串)

  • [no_tags]

    在映射器插入并尝试返回新的主键值时对其进行小修复

  • [no_tags]

    重写了一半的tlengine,与'strategy=“threadlocal”'一起使用的组合sqlengine。现在它正确地实现了engine.begin()/engine.commit(),它使用connection.begin()/trans.commit()完全嵌套。增加了六个单元测试。

  • [no_tags]

    少校在游泳池里。游泳池里,忘了放回weakwaluedictionary。本来要检查这一点的UnitTest也悄悄地丢失了它。固定单元测试以确保ConnectionFairy正确脱离范围。

  • [no_tags]

    placeholder dispose()方法已添加到singletonthreadpool,但尚未执行任何操作

  • [no_tags]

    当引发异常时,会自动调用rollback(),但前提是进程中没有事务(即,工作方式更像是自动提交)。

  • [no_tags]

    修复了在不存在sqlite模块的情况下在sqlite中引发的异常

  • [no_tags]

    为关联对象文档添加了额外的示例细节

  • [no_tags]

    连接添加已关闭的检查

0.2.0

Released: Sat May 27 2006
  • [no_tags]

    对引擎系统进行大修,使原来的sqlengine现在是由各种组件(包括方言、连接提供程序等)组成的复合sqlengine。这影响了所有db模块以及会话和映射器。

  • [no_tags]

    Create_Engine现在只使用RFC-1738样式的字符串:driver://user:password@host:port/database

  • [no_tags]

    完全重写连接范围方法,连接对象现在可以直接执行子句元素,添加显式的“close”,并支持整个引擎/ORM正确处理关闭,不再依赖于 __del__ 在内部返回到池的连接。

    References: #152

  • [no_tags]

    检修会话接口和范围。使用Hibernate样式的方法,包括query(class)、save()、save_或_update()等。默认情况下不安装线程本地作用域。提供到特定引擎和/或连接的绑定接口,以便基础架构对象不需要绑定到引擎。添加了一个基本的sessionransaction对象,该对象可以简单地聚合多个引擎之间的事务。

  • [no_tags]

    彻底检查映射器的依赖关系和“级联”行为;依赖关系逻辑从properties.py分解为单独的模块“dependency.py”。层叠”行为现在是显式控制的,“删除”、“删除孤立”等的正确实现。依赖系统现在可以在刷新时确定子对象是否有父对象,以便更好地决定如何在数据库中更新该子对象以进行删除。

  • [no_tags]

    对架构进行大修,以构建元数据对象而不是引擎。整个SQL/Schema系统可以不使用任何引擎,只由显式连接对象执行。“绑定”方法通过模式对象的boundMetadata存在。proxyengine通常不再需要,而是由dynamicmetadata替换。

  • [no_tags]

    实现真正的多态行为,修复

    References: #167

  • [no_tags]

    “OID”系统已经完全转移到编译时行为中;如果它们按顺序使用,那么它们不可用,那么就不会编译顺序,修复

    References: #147

  • [no_tags]

    翻修到打包;“mapping”现在是“orm”,“objectstore”现在是“session”,旧的“objectstore”名称空间通过“threadlocal”mod加载(如果使用)

  • [no_tags]

    mods现在通过“import<modname>”调用。由于mod在全球范围内都是monkeypatching,因此扩展比mod更受欢迎

  • [no_tags]

    修复以添加属性以便将属性传播到继承映射器

    References: #154

  • [no_tags]

    backrefs根据其原始属性的主映射器创建自己,可以指定要重写的主/辅助联接参数。帮助他们使用多态映射器

  • [no_tags]

    已实现“表存在”功能

    References: #31

  • [no_tags]

    “创建全部/删除全部”添加到元数据对象

    References: #98

  • [no_tags]

    拓扑排序算法的改进和修复,以及更多的单元测试

  • [no_tags]

    添加到文档的教程页,也可以使用自定义doctest运行程序运行,以确保其正常工作。为了处理新的代码模式,通常对文档进行大修

  • [no_tags]

    更多的修复、重构。

  • [no_tags]

    迁移指南可以在维基网站上找到,网址是:https://www.sqlalchemy.org/trac/wiki/02Migration

Previous: 0.3换热器 Next: 0.1换热器