新闻和更新

Alembic 0.8.0 发布
永久链接

Alembic 0.8.0 现在可用。

此版本包含一系列大型重组,旨在提供几个新的扩展 API,这些 API 极大地提高了 Alembic 的可扩展程度。

普通的 Alembic 环境应该不会注意到任何不同,因为我们努力保持完全的向后兼容性。但是,“operations”和“autogenerate”功能都已完全重组,以便在这两个系统之间产生更加开放和集成的流程。

在新系统的基础上,Alembic 中作为“operation”的所有内容现在都被归结为一个对象,称为MigrateOperation。 的子类MigrateOperation包括熟悉的事物,例如AddColumnOp, CreateForeignKeyOPDropTableOp。 这些对象不代表我们为这些操作发出的 SQL,而是代表在 Alembic 中定义的操作作为接口的一部分。在这些对象上,我们现在挂载所有函数作为相关操作,包括它如何链接到alembic.op.*命名空间,autogenerate 如何在 Python 中渲染它,autogenerate 如何生成针对数据库的“diff”,它如何针对 DDL 后端实现,以及更多内容。

有了这个新系统,我们不一定添加了以前没有的任何新功能,但是我们现在已经围绕这个对象组织了我们所知道的关于“Alembic operation”的所有内容,使用现在公开的 API 将操作与每个操作关联起来。

这意味着您现在可以

  • 自由创建您自己的 Alembic 操作,这些操作在alembic.op.*中可用,就像任何其他
  • 为这些操作创建您自己的 autogenerate 方案,包括定义如何进行数据库比较以及渲染 Python
  • 完全修改 autogenerate 在生成新的迁移脚本时的行为;生成的脚本的全部内容以对象形式传递给用户可用的钩子,然后可以完全重写结构。可以使 autogenerate 操作生成多个文件到不同的目录和/或分支,或者根本不生成任何文件。还提供了一个助手,可以轻松编写特定元素的简短替换。常见的用户请求,例如让 autogenerate 在没有净更改时不生成文件,将“add column”操作转换为“add column, nullable=True” + “alter column set not null”,或支持替代迁移流程,例如将迁移拆分为“expand”和“contract”分支,现在都可以轻松地通过脚本实现,而无需向 Alembic 本身添加新的标志和开关。
  • 创建可以接收 autogenerate 流并将其直接作为 Alembic 操作推送到实时数据库或 SQL 脚本的应用程序,甚至无需生成任何修订脚本。
  • 为 Alembic 操作创建替代实现系列,例如将它们写出为 JSON 或 XML 格式,或者可能基于它们构建实时的 MetaData 结构。

该版本还包括一些其他修复和功能。特别是,结合操作的重组,还对alembic.op.*命名空间中的位置参数进行了重命名,但是包含了一个向后兼容性转换层,因此大多数项目应该不会受到影响。完整的名称更改列表在更改日志中列出。

在以下位置下载 Alembic 0.8.0:https://pypi.python.org/pypi/alembic/

完整更改日志,包括新功能、错误修复以及所有已更改位置参数名称的 Operations 方法的链接,请访问:http://alembic.readthedocs.org/en/latest/changelog.html#change-0.8.0

感谢社区中每个人的帮助,以补丁、拉取请求、错误报告和邮件列表评论的形式帮助发布此版本。

SQLAlchemy 1.0.8 发布
永久链接

SQLAlchemy 1.0.8 版本现已可用。

1.0.8 版本几乎紧随 1.0.7 版本之后发布,因为已识别并修复了一个涉及连接池的新问题,该问题会影响任何依赖于.info字典在正在进行重新连接尝试的连接上的应用程序。使用连接池事件处理程序的应用程序和库可能会从此版本中受益,因为它修复了.info字典的行为,并降低了将陈旧连接传递给“checkout”处理程序的可能性。

1.0.8 的更改日志位于

更改日志

SQLAlchemy 1.0.8 可在下载页面上找到。

SQLAlchemy 0.9.10 发布
永久链接

SQLAlchemy 0.9.10 版本现已可用。

这是 0.9 系列的维护版本,提供了一系列错误修复和小型功能增强,这些功能通常是从 1.0 系列反向移植的。由于 1.0 系列已投入生产使用数月,因此预计 0.9 系列在此版本之后只会收到关键错误修复。

0.9.10 的更改日志位于

更改日志

SQLAlchemy 0.9.10 可在下载页面上找到。

SQLAlchemy 1.0.7 发布
永久链接

SQLAlchemy 1.0.7 版本现已可用。

此版本包含一系列回归修复、一些额外的错误修复以及一些新的 Core 级别功能,包括一个新的.cast()方法,该方法在列构造上可用,以及对用于创建序列的许多新关键字的支持。

SQLAlchemy 的路线图上的下一步是 1.1 系列的开始;1.1 里程碑已经累积了几十个提议的错误修复和功能。期待 1.1 系列的开发和文档在未来几周内开始。

1.0.7 的更改日志位于

更改日志

SQLAlchemy 1.0.7 可在下载页面上找到。

SQLAlchemy 1.0.6 发布
永久链接

SQLAlchemy 1.0.6 版本现已可用。

此版本包含一些新的错误修复和一些小的功能添加,并在社区的高度参与下进行推进。

修复的最关键问题涉及 ORM 的版本控制功能,其中行的版本计数器可能会在行上没有其他净更改时递增;这是从 0.9 回归的。其他一些小问题也是回归或“半回归”(例如,0.9 中存在的一个错误,但在 1.0 中由于更多地使用了某个功能而更有可能遇到)。涉及 SQL ServerVARBINARY类型、“单继承”映射的 ORM 查询以及对 psycopg2cffi 的最新版本(2.7.1)的支持已得到解决。

新功能都是以 Postgresql 为中心的,包括支持设置 Postgresql 索引的存储参数,以及这些参数和索引的“using”算法的反射;修复了ExcludeConstraint构造,以允许更开放的 SQL 表达式,并支持控制在使用“服务器端游标”模式时使用的行缓冲区大小。

1.0.6 的更改日志位于

更改日志

SQLAlchemy 1.0.6 可在下载页面上找到。