2025年2月7日,星期五

为 PG 和 SQLite 的 update_all 支持 joins 以及更多

作者:Wojtek

大家好,我是 Wojtek,为您带来本周 Rails 代码库的变更。

Clio 加入 Rails 基金会
我们很高兴地欢迎 Clio 成为 Rails 基金会最新的贡献会员。

Postgresql 和 SQlite 的 update_all 增加支持
在此之前,当生成包含一个或多个 JOIN 子句的 update 查询时,Active Record 会使用子查询,这会阻止在 SET 子句中引用连接的表,例如:

Comment.joins(:post).update_all("title = posts.title")

现在这已经得到了支持,前提是该关联关系不使用 LIMITORDERGROUP BY 子句。MySQL 适配器长期以来一直支持此功能。

对 auth 生成器的密码重置进行速率限制
这有助于减轻攻击者滥用密码重置表单的行为。

启用 statement-cached 查询的可重试性
启用对连接错误时的幂等关联查询自动重试。

为 sql.active_record 添加 allow_retry
这有助于识别哪些查询在连接错误时是自动可重试的。

使用待处理迁移操作迁移多个数据库
修复了使用 ActiveRecord::PendingMigration 操作迁移多个数据库的问题。

加速 Docker 构建
通过移除默认 Dockerfile 模板中的递归 chown 命令,Docker 构建现在应该会更快一些。

您可以在 此处查看完整的变更列表。 上周,我们有 19 位贡献者为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。