rails--rails/activerecord/CHANGELOG.md

3.6 KiB

  • Deprecate delegating to arel in Relation.

    Ryuta Kamizono

  • Fix eager loading to respect store_full_sti_class setting.

    Ryuta Kamizono

  • Query cache was unavailable when entering the ActiveRecord::Base.cache block without being connected.

    Tsukasa Oishi

  • Previously, when building records using a has_many :through association, if the child records were deleted before the parent was saved, they would still be persisted. Now, if child records are deleted before the parent is saved on a has_many :through association, the child records will not be persisted.

    Tobias Kraze

  • Merging two relations representing nested joins no longer transforms the joins of the merged relation into LEFT OUTER JOIN. Example to clarify:

    Author.joins(:posts).merge(Post.joins(:comments))
    # Before the change:
    #=> SELECT ... FROM authors INNER JOIN posts ON ... LEFT OUTER JOIN comments ON...
    
    # After the change:
    #=> SELECT ... FROM authors INNER JOIN posts ON ... INNER JOIN comments ON...
    

    TODO: Add to the Rails 5.2 upgrade guide

    Maxime Handfield Lapointe

  • ActiveRecord::Persistence#touch does not work well when optimistic locking enabled and locking_column, without default value, is null in the database.

    bogdanvlviv

  • Fix destroying existing object does not work well when optimistic locking enabled and locking column is null in the database.

    bogdanvlviv

  • Use bulk INSERT to insert fixtures for better performance.

    Kir Shatrov

  • Prevent making bind param if casted value is nil.

    Ryuta Kamizono

  • Deprecate passing arguments and block at the same time to count and sum in ActiveRecord::Calculations.

    Ryuta Kamizono

  • Loading model schema from database is now thread-safe.

    Fixes #28589.

    Vikrant Chaudhary, David Abdemoulaie

  • Add ActiveRecord::Base#cache_version to support recyclable cache keys via the new versioned entries in ActiveSupport::Cache. This also means that ActiveRecord::Base#cache_key will now return a stable key that does not include a timestamp any more.

    NOTE: This feature is turned off by default, and #cache_key will still return cache keys with timestamps until you set ActiveRecord::Base.cache_versioning = true. That's the setting for all new apps on Rails 5.2+

    DHH

  • Respect SchemaDumper.ignore_tables in rake tasks for databases structure dump

    Rusty Geldmacher, Guillermo Iguaran

  • Add type caster to RuntimeReflection#alias_name

    Fixes #28959.

    Jon Moss

  • Deprecate supports_statement_cache?.

    Ryuta Kamizono

  • Quote database name in db:create grant statement (when database user does not have access to create the database).

    Rune Philosof

  • Raise error UnknownMigrationVersionError on the movement of migrations when the current migration does not exist.

    bogdanvlviv

  • Fix bin/rails db:forward first migration.

    bogdanvlviv

  • Support Descending Indexes for MySQL.

    MySQL 8.0.1 and higher supports descending indexes: DESC in an index definition is no longer ignored. See https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html.

    Ryuta Kamizono

  • Fix inconsistency with changed attributes when overriding AR attribute reader.

    bogdanvlviv

  • When calling the dynamic fixture accessor method with no arguments it now returns all fixtures of this type. Previously this method always returned an empty array.

    Kevin McPhillips

Please check 5-1-stable for previous changes.