가장 핵심적인 변화는 PostgreSQL 및 SQLite에서 update_all
쿼리에 JOIN 절을 사용하는 기능이 지원된다는 점입니다. 이전에는 Comment.joins(:post).update_all("title = posts.title")
와 같이 JOIN 절을 포함하는 update
쿼리에서 JOIN된 테이블을 SET 절에서 참조하기 어려웠으나, 이제 LIMIT, ORDER, GROUP BY 절이 없는 한 가능해졌습니다. 이는 MySQL 어댑터에서 이미 지원되던 기능입니다.
보안 강화를 위해 인증 생성기에 비밀번호 재설정 속도 제한 기능이 추가되어, 공격자의 비밀번호 재설정 양식 악용을 완화합니다. 또한, 연결 오류 발생 시 idempotent 연관 쿼리가 자동으로 재시도되도록 statement-cached 쿼리 기능이 활성화되었습니다. 이는 sql.active_record
에 allow_retry
속성이 추가되어 가능해졌으며, 시스템의 견고성을 높입니다.
데이터베이스 마이그레이션 측면에서는 ActiveRecord::PendingMigration
액션을 사용하는 여러 데이터베이스 마이그레이션 문제가 수정되어 다중 DB 환경의 안정성이 개선되었습니다. 마지막으로, 기본 Dockerfile 템플릿에서 재귀적인 chown
명령을 제거하여 Docker 빌드 속도가 향상되었습니다.