SQLAlchemy 1.2.16 发布,Python ORM 框架

发布于 2019年01月14日
收藏 3

SQLAlchemy 1.2.16 发布了,SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象关系映射框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。

此版本更新包含了一系列 dialect 和引擎级的修复,以及包含非 ascii 字符的 DBAPI 异常消息的 Unicode 解码的1.2回滚。具体更新如下:


  • engine Fixed a regression introduced in version 1.2 where a refactor of the SQLAlchemyError base exception class introduced an inappropriate coercion of a plain string message into Unicode under python 2k, which is not handled by the Python interpreter for characters outside of the platform’s encoding (typically ascii). The SQLAlchemyError class now passes a bytestring through under Py2K for __str__() as is the behavior of exception objects in general under Py2K, does a safe coercion to unicode utf-8 with backslash fallback for __unicode__(). For Py3K the message is typically unicode already, but if not is again safe-coerced with utf-8 with backslash fallback for the __str__() method.

    References: #4429


  • sql mysql Fixed issue where the DDL emitted for DropTableComment, which will be used by an upcoming version of Alembic, was incorrect for the MySQL and Oracle databases.

    References: #4436


  • postgresql Fixed issue where a postgresql.ENUM or a custom domain present in a remote schema would not be recognized within column reflection if the name of the enum/domain or the name of the schema required quoting. A new parsing scheme now fully parses out quoted or non-quoted tokens including support for SQL-escaped quotes.

    References: #4416

  • postgresql Fixed issue where multiple postgresql.ENUM objects referred to by the same MetaData object would fail to be created if multiple objects had the same name under different schema names. The internal memoization the PostgreSQL dialect uses to track if it has created a particular postgresql.ENUM in the database during a DDL creation sequence now takes schema name into account.


  • sqlite Reflection of an index based on SQL expressions are now skipped with a warning, in the same way as that of the Postgresql dialect, where we currently do not support reflecting indexes that have SQL expressions within them. Previously, an index with columns of None were produced which would break tools like Alembic.

    References: #4431


  • Fixed issue in “expanding IN” feature where using the same bound parameter name more than once in a query would lead to a KeyError within the process of rewriting the parameters in the query.

    References: #4394



转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:SQLAlchemy 1.2.16 发布,Python ORM 框架