Release: 1.4.25 | Release Date: September 22, 2021

SQLAlchemy 1.4 Documentation

0.1换热器

0.1.7

Released: Fri May 05 2006
  • [no_tags]

    拓扑排序算法的一些修正

  • [no_tags]

    在Postgres的支持上添加了distinct(只提供distinct= [COL1,COL2。] )

  • [no_tags]

    补充 __mod__ (%operator)到SQL表达式

  • [no_tags]

    从继承映射器继承的“排序依据”映射器属性

  • [no_tags]

    修复映射器更新/删除时使用的列类型

  • [no_tags]

    转换为unicode=true时,反射失败,已修复

  • [no_tags]

    类型类型类型!仍然不起作用…必须再次使用typecorator:。(

  • [no_tags]

    MySQL二进制类型将数组输出转换为缓冲区,修复pickleType

  • [no_tags]

    一次性修复了attributes.py内存泄漏

  • [no_tags]

    单元测试是基于支持每个单元的数据库进行限定的。

  • [no_tags]

    修正了列默认值会破坏insert对象的values子句的错误

  • [no_tags]

    修复了表def w/schema name将强制引擎连接的错误

  • [no_tags]

    修复插入/更新中的括号以正确处理子查询

  • [no_tags]

    HistoryArraySet获取extend()方法

  • [no_tags]

    修正了Lazyload对其他比较运算符的支持=

  • [no_tags]

    Lazyload修复程序,连接条件中的两个比较指向samem列

  • [no_tags]

    将“construct_new”标志添加到映射器,将使用 __new__ 创建实例而不是 __init__ (0.2中的标准)

  • [no_tags]

    向SVN中添加了selectresults.py,上次错过了它

  • [no_tags]

    调整以允许多对多关系通过关联表从表到自身

  • [no_tags]

    多态示例使用的“translate_row”函数的小修复

  • [no_tags]

    create_engine使用cgi.parse_qsl读取查询字符串(0.2中的窗口外)

  • [no_tags]

    调整以强制转换运算符

  • [no_tags]

    固定函数名local_time/local_timestamp->local time/local timestamp

  • [no_tags]

    固定顺序

0.1.6

Released: Wed Apr 12 2006
  • [no_tags]

    对MS-SQL的支持由Rick Morrison、Runar Petursson提供

  • [no_tags]

    来自J.Ellis的最新sqlsoop

  • [no_tags]

    ActiveMapper已初步支持继承(Jeff Watkins)

  • [no_tags]

    添加了一个“mods”系统,允许使用“install-mods”功能修改/增强核心功能的可插拔模块( * MODIDS)

  • [no_tags]

    添加了第一个“mod”,selectresults,它修改mapper selects以返回将范围转换为限制/偏移查询的生成器(jonas borgstr?

  • [no_tags]

    将映射器的查询功能分解为以会话为中心的单独查询对象。这提高了映射器的性能。使用(会话)并使其他事情成为可能。

  • [no_tags]

    对象存储/会话已重构,保存对象的官方方法现在是通过flush()方法。会话的begin/commit功能被分解为legacysession,在0.2系列之前,legacysession仍然是默认行为。

  • [no_tags]

    类型系统在查询编译时绑定到引擎,而不是架构构造时。这简化了类型系统和代理引擎。

  • [no_tags]

    向映射器添加了'version_id'关键字参数。此关键字应引用类型为integer的列对象,最好是不可以为空的,该对象将用于映射表以跟踪版本号。此数字在每次保存操作中都会递增,并在更新/删除条件中指定,以便它影响到返回的行计数,如果收到的值不是预期的计数,则会导致并发错误。

  • [no_tags]

    向映射器添加了“entityu name”关键字参数。映射器现在通过类对象和可选的实体名称参数与类关联,该参数是默认为“无”的字符串。可以为一个类创建任意数量的主映射器,由实体名限定。这些类的实例将通过其实体的名称限定映射器发出所有加载和保存操作,并在标识映射中为其他等效对象维护单独的标识。

  • [no_tags]

    对属性系统进行检修。代码已经被澄清,并且也被修复以支持对象属性的正确多态行为。

  • [no_tags]

    添加了“for u update”标志以选择对象

  • [no_tags]

    一些修复backrefs

  • [no_tags]

    Postgres1日期时间类型的修复

  • [no_tags]

    文档页面主要转换为标记语法

0.1.5

Released: Mon Mar 27 2006
  • [no_tags]

    将sqlsession概念添加到sqlengine。此对象跟踪从连接池检索连接以及正在进行的事务。方法push_session()和pop_session()添加到sqlEngine中,将新的sqlsession推/弹出到引擎中,允许在前一个连接中的第二个连接“嵌套”时操作,允许嵌套事务。其他关于sqlsession的技巧稍后肯定会出现。

  • [no_tags]

    向objectstore.session添加了nest-on参数。这是一个单独的sqlengine或引擎列表,每次此会话成为活动会话时(通过objectstore.push_session()或等效工具),将调用push_session()/pop_session()。这允许工作会话单元利用嵌套事务功能,而无需在引擎上显式调用push_session/pop_session。

  • [no_tags]

    分解了ObjectStore/UnitOfWork,将“会话范围”与“UOW提交重提升”分开。

  • [no_tags]

    已将Populate_Instance()方法添加到MapperExtension。允许扩展修改对象属性的填充。此方法可以调用另一个映射器上的populate_instance()方法,将属性填充从一个映射器代理到另一个映射器;还内置了一些行转换逻辑来帮助实现这一点。

  • [no_tags]

    修复了oracle8兼容性“use_ansi”标志,该标志将联接转换为与=和(+)运算符的比较,并通过基本单元测试

  • [no_tags]

    调整到Oracle限制/偏移支持

  • [no_tags]

    Oracle反射使用所有_ ** views instead of USER_** 从中获得更多要反映的内容

  • [no_tags]

    对Oracle外键反射的修复

    References: #105

  • [no_tags]

    commit(obj1,obj2,…)添加了一个额外的步骤来查找属性上的私有关系并删除子对象,尽管它不是全局commit

  • [no_tags]

    对使用继承的映射器进行了大量的修复,增强了映射器上的关系概念,使其指向“本地”表,而不是它所继承的表。允许更复杂的合成模式使用懒惰/渴望加载。

  • [no_tags]

    添加了对映射器的支持以基于同一个表从其他映射器继承,只需指定与父/子映射器相同的表。

  • [no_tags]

    在实例化和填充新对象方面,对属性系统进行了一些微小的速度改进。

  • [no_tags]

    固定mysql二进制单元测试

  • [no_tags]

    insert可以将子句元素作为值参数接收,而不仅仅是文本值。

  • [no_tags]

    支持调用多标记函数,即schema.mypkg.func()。

  • [no_tags]

    在扩展包中添加了J.Ellis的sqlsoup模块

  • [no_tags]

    添加了“多态”示例,说明从一个映射器加载多个对象类型的方法,其中第二个使用新的populate_instance()方法。对mapper、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()添加了断言,即在rollback()之后不能使用它

  • [no_tags]

    添加了绑定参数fix到sqlite的日期转换,使日期可以与pysqlite1一起使用

  • [no_tags]

    改进了子查询,以便更智能地构造其FROM子句

    References: #116

  • [no_tags]

    向类型添加了pickletype。

  • [no_tags]

    修正了两个关于绑定参数带有列标签的错误:bind param keynames它们现在在所有相关情况下都是从列“label”生成的,以利用多余的名称长度规则,并检查与添加的“tablename_colname”相同的列是否有特殊冲突。

  • [no_tags]

    对工作单元文档、其他文档部分进行大修。

  • [no_tags]

    修正了属性错误,如果一个对象被提交,它的延迟加载列表就会在没有被加载的情况下被吹走。

  • [no_tags]

    向引擎、连接池添加了唯一的_connection()方法,以返回不属于线程本地上下文或任何当前事务的连接。

  • [no_tags]

    向池连接添加了invalidate()函数。将从池中删除连接。不过,引擎仍然需要工作才能自动重新连接到过时的数据库。

  • [no_tags]

    向列元素添加了distinct()函数,以便可以执行func.count(mycol.distinct())

  • [no_tags]

    将“总是刷新”标志添加到映射器,创建一个映射器,该映射器将始终刷新从数据库中获取/选择的对象的属性,覆盖所做的任何更改。

0.1.4

Released: Mon Mar 13 2006
  • [no_tags]

    create_engine()现在对所有引擎连接使用通用参数:主机/主机名、db/dbname/database、密码/passwd等。使发动机URI更加“通用”

  • [no_tags]

    使用“scalar=true”标志,添加了对嵌入到column子句中的select语句的支持

  • [no_tags]

    当与继承的映射器一起使用时,另一种对“热切加载”的修改;对“热切加载”的改进可以正确地计算出它们的别名查询,还可以使用继承的映射器对映射器建立关系,从而针对特定于映射器本身的表(即,而不是继承/进一步继承的任何表)创建连接。r沿着继承链),这可以通过使用自定义的主/辅助联接来覆盖。

  • [no_tags]

    在mapper.py中添加了j.elli补丁,以便selectone()在查询返回多个对象行时引发异常,selectfirst()不引发异常。还添加selectfirst_by(与get_by同义)和selectone_by

  • [no_tags]

    向列中添加了OnUpdate参数,将在update语句上执行SQL/python。还向所有defaultGenerator子类添加了“for_update=true”。

  • [no_tags]

    增加了对Andrija Zaric提供的Oracle表反射的支持;仍然有一些关于复合主键/字典选择的错误需要解决。

  • [no_tags]

    已签入初始Firebird模块,等待测试。

  • [no_tags]

    添加了sql.clauseParameters字典对象作为compiled.get_params()的结果,对绑定参数进行后期类型处理,以便更容易访问原始值

  • [no_tags]

    索引、列默认值、连接池、引擎构造的更多文档

  • [no_tags]

    对型号体系的建设进行大修。使用一个更简单的继承模式,这样任何泛型类型都可以很容易地被子类化,而不需要使用typecorator。

  • [no_tags]

    将“convert_unicode=false”参数添加到sqlengine,将导致所有字符串类型执行unicode编码/解码(使字符串的行为类似于unicodes)

  • [no_tags]

    向引擎添加了'encoding=“utf8”'参数。给定的编码将用于unicode类型中的所有编码/解码调用,以及当convert_unicode=true时的字符串。

  • [no_tags]

    改进了对联合映射的支持,添加了polymorf.py示例来说明针对联合的多类映射

  • [no_tags]

    固定到sqlite限制/偏移量语法

  • [no_tags]

    修复到Oracle限制语法

  • [no_tags]

    添加了backref()函数,允许backreference具有将传递给backref的关键字参数。

  • [no_tags]

    序列和列默认对象可以独立执行()/scalar()。

  • [no_tags]

    SQL函数(即func.foo())可以独立执行()/scalar()。

  • [no_tags]

    修复到SQL函数,以便ANSI标准函数(即当前时间戳等)不指定括号。所有其他功能都有。

  • [no_tags]

    添加了setattr_clean和append_clean to smartproperty,它设置属性而不触发“脏”事件或任何历史记录。用作:myclass.prop1.setattr_clean(myObject,'hi')

  • [no_tags]

    当映射器使用列默认值时,改进了对列默认值的支持;映射器将从语句的已执行绑定参数(预转换)中提取预执行的默认值,以将其填充到已保存对象的属性中;如果已触发任何被动默认值,则将改为从数据库中后期提取行以填充对象。

  • [no_tags]

    添加了'get_session()。无效( * 对象存储的方法,实例将在下一次属性访问时刷新()。

  • [no_tags]

    对sql func调用的改进包括一个“engine”关键字参数,这样它们就可以独立地执行()d或scalar()ed,还向sql engine添加了func访问器

  • [no_tags]

    修复到mysql4自定义表引擎,即类型而不是引擎

  • [no_tags]

    稍微增强的日志记录,包括时间戳和某种程度上可配置的格式化系统,而不是全面的日志记录系统。

  • [no_tags]

    TG帮派的ActiveMapper类的改进,包括多对多关系

  • [no_tags]

    增加了对mysql的double和tinyint支持

0.1.3

Released: Thu Mar 02 2006
  • [no_tags]

    完成的“更新后”功能,将在插入前和删除后添加第二条更新语句,以便在不创建任何依赖项的情况下协调关系;在保持相互依赖的两行时使用

  • [no_tags]

    已完成的映射器。使用(会话)函数,按对象会话功能进行本地化;可以将对象声明为任何用户定义会话的本地对象并对其进行操作。

  • [no_tags]

    修复到具有多个表的Oracle“行数覆盖”子句

  • [no_tags]

    如果映射器的表是一个联接(例如在继承关系中),则mapper.get()没有选择多个键对象,这是固定的。

  • [no_tags]

    对SQL/Schema包进行彻底检查,以便SQL包可以独立运行,生成选择、插入等,而不需要任何引擎依赖项。基于新的TableClause/ColumnClause词汇对象。模式的表/列对象是它们的“物理”子类。简化了模式/SQL关系、扩展(如proxyengine),并大大提高了总体性能。删除困扰0.1.1的整个getAttr()行为。

  • [no_tags]

    重构映射器如何将两个对象之间的数据“同步”到一个单独的模块中,可以更好地处理附加到映射器的属性(该映射器与一个相关表具有附加的继承关系),也可以使用映射器现在用于同步继承和继承之间的父/子对象的相同方法。制图者

  • [no_tags]

    使objectstore“check for out of identitymap”更具攻击性,将在修改对象属性或删除对象时执行检查

  • [no_tags]

    索引对象完全实现,可以独立构造,也可以通过列上的“index”和“unique”参数来构造。

  • [no_tags]

    在sqlengine中添加了“convert_unicode”标志,将把所有字符串/字符类型视为unicode类型,在bind参数和结果集端使用原始字节/utf-8转换。

  • [no_tags]

    Postgres维护一个必须没有括号的ANSI函数列表,因此不带参数的函数调用可以一致地工作。

  • [no_tags]

    可以在未指定引擎的情况下创建表。这将使它们的引擎默认为模块范围的“默认引擎”,即代理引擎。此引擎可以通过“全局连接”功能连接。

  • [no_tags]

    添加“刷新” * obj)“对象存储/会话的方法,无条件地从数据库重新加载任何对象集的属性

0.1.2

Released: Fri Feb 24 2006
  • [no_tags]

    修正了模式中以某种方式运行994次然后正常返回的递归调用。什么都没弄坏,一切都变慢了。感谢杰佩林找到这个。

0.1.1

Released: Thu Feb 23 2006
  • [no_tags]

    对函数类的小修复,使具有func.foo()的表达式使用函数对象的类型(即左侧)作为布尔表达式的类型,而不是更像移动目标的另一侧(changeset 1020)。

  • [no_tags]

    使用backrefs创建自引用映射器稍微容易一些(但仍然不容易-变更集1019)

  • [no_tags]

    修复到一对一映射(变更集1015)

  • [no_tags]

    psycopg1日期/时间问题,无固定值(变更集1005)

  • [no_tags]

    与postgres相关的两个问题,不希望给您“lastrowid”,因为OID已被弃用:

    • 主键列上的Postgres数据库端默认值 do 事先明确地执行,即使这不是被动默认的概念。这是因为列上的序列被反映为被动默认值,但需要在主键列上显式执行,这样我们就知道刚才插入了什么。

    • 如果您添加了一行,其中有许多数据库端的默认值,而passivedefault是按照旧的方式工作的,即它们只是在数据库端执行,那么除非有人(通常是ORM)明确要求,否则也不会发生“没有OID就无法取回行”的异常。

  • [no_tags]

    修正了在生成第二个resultProxy时编译的engine.execute_出现的一个问题,而这个resultProxy被丢弃了。

  • [no_tags]

    开始在对象属性中实现较新的逻辑。现在可以说myclass.attr.property,它将为您提供与该属性对应的propertyloader,即myclass.mapper.props。 [“阿特尔”]

  • [no_tags]

    急切的加载已经在内部进行了彻底的检查,以便随时使用别名。现在可以在不需要任何显式“使用别名”类型指令的情况下创建更复杂的预加载链。现在,Hoggloader代码也简单多了。

  • [no_tags]

    在关系中添加了一个新的有点实验性的标志“use_update”,它表示这个关系应该由第二个update语句处理,不管是在主插入之后还是在主删除之前。处理循环行依赖项。

  • [no_tags]

    添加了异常模块,所有引发的异常(除了某些keyError/attributeError异常)都从这些类中下降。

  • [no_tags]

    使用MySQL修复到日期类型,返回的TimeDelta已转换为date time.time

  • [no_tags]

    两阶段的objectstore.commit操作(即begin/commit)现在返回事务对象(sessionrans),以更清楚地指示事务边界。

  • [no_tags]

    添加了对架构的创建/删除支持的索引对象

  • [no_tags]

    修正到postgres,如果表是主键列,它将显式地预执行passivedefault,根据正在进行的“我们无法从postgres中得到插入的行”问题

  • [no_tags]

    更改为返回postgres table defs的信息模式查询,现在使用显式join关键字,因为一个用户使用8.1有更快的性能

  • [no_tags]

    修复为engine.process_默认值,以便它与具有不同列名/列键的表(changeset 982)正确工作。

  • [no_tags]

    一个列只能附加到一个表上-现在声明为

  • [no_tags]

    Postgres时间类型从时间类型下降

  • [no_tags]

    修复所有测试,使其运行类型测试(现在命名为testypes)

  • [no_tags]

    修复为联接对象,以便它正确导出其外键(CS 973)

  • [no_tags]

    针对使用继承固定的映射器创建关系(CS 973)

Previous: 0.2换热器 Next: SQLAlchemy 1.3有什么新功能?