activerecord 6.1.0.rc1 → 6.1.2.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activerecord might be problematic. Click here for more details.

Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +177 -20
  3. data/README.rdoc +1 -1
  4. data/lib/active_record/aggregations.rb +4 -4
  5. data/lib/active_record/association_relation.rb +10 -0
  6. data/lib/active_record/associations.rb +6 -2
  7. data/lib/active_record/associations/association.rb +14 -9
  8. data/lib/active_record/associations/association_scope.rb +7 -5
  9. data/lib/active_record/associations/belongs_to_association.rb +7 -3
  10. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +7 -2
  11. data/lib/active_record/associations/builder/association.rb +23 -2
  12. data/lib/active_record/associations/builder/belongs_to.rb +2 -2
  13. data/lib/active_record/associations/has_many_association.rb +1 -1
  14. data/lib/active_record/associations/join_dependency.rb +2 -2
  15. data/lib/active_record/associations/join_dependency/join_association.rb +8 -7
  16. data/lib/active_record/attribute_methods.rb +13 -7
  17. data/lib/active_record/attribute_methods/serialization.rb +8 -2
  18. data/lib/active_record/attributes.rb +6 -1
  19. data/lib/active_record/callbacks.rb +121 -1
  20. data/lib/active_record/connection_adapters/abstract/connection_pool.rb +8 -3
  21. data/lib/active_record/connection_adapters/abstract/query_cache.rb +1 -1
  22. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +4 -0
  23. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +7 -1
  24. data/lib/active_record/connection_adapters/abstract/transaction.rb +24 -18
  25. data/lib/active_record/connection_adapters/abstract_adapter.rb +23 -8
  26. data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +6 -10
  27. data/lib/active_record/connection_adapters/mysql/schema_creation.rb +1 -2
  28. data/lib/active_record/connection_adapters/mysql/schema_dumper.rb +4 -1
  29. data/lib/active_record/connection_adapters/pool_config.rb +13 -3
  30. data/lib/active_record/connection_adapters/postgresql/database_statements.rb +1 -1
  31. data/lib/active_record/connection_adapters/postgresql/oid/date_time.rb +8 -0
  32. data/lib/active_record/connection_adapters/postgresql/oid/money.rb +2 -2
  33. data/lib/active_record/connection_adapters/postgresql_adapter.rb +1 -3
  34. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +1 -1
  35. data/lib/active_record/connection_handling.rb +11 -3
  36. data/lib/active_record/core.rb +51 -32
  37. data/lib/active_record/database_configurations/url_config.rb +1 -1
  38. data/lib/active_record/enum.rb +58 -31
  39. data/lib/active_record/fixtures.rb +4 -1
  40. data/lib/active_record/gem_version.rb +2 -2
  41. data/lib/active_record/insert_all.rb +2 -0
  42. data/lib/active_record/internal_metadata.rb +2 -4
  43. data/lib/active_record/locking/optimistic.rb +14 -4
  44. data/lib/active_record/log_subscriber.rb +3 -2
  45. data/lib/active_record/migration/compatibility.rb +2 -1
  46. data/lib/active_record/model_schema.rb +29 -0
  47. data/lib/active_record/railtie.rb +2 -2
  48. data/lib/active_record/railties/console_sandbox.rb +2 -4
  49. data/lib/active_record/railties/databases.rake +29 -7
  50. data/lib/active_record/reflection.rb +2 -1
  51. data/lib/active_record/relation/predicate_builder.rb +6 -9
  52. data/lib/active_record/relation/predicate_builder/association_query_value.rb +3 -4
  53. data/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb +9 -5
  54. data/lib/active_record/relation/query_methods.rb +9 -6
  55. data/lib/active_record/relation/spawn_methods.rb +2 -2
  56. data/lib/active_record/schema_migration.rb +2 -4
  57. data/lib/active_record/signed_id.rb +1 -1
  58. data/lib/active_record/table_metadata.rb +10 -3
  59. data/lib/active_record/tasks/database_tasks.rb +1 -0
  60. data/lib/active_record/transactions.rb +4 -2
  61. metadata +12 -12
@@ -10,6 +10,10 @@ module ActiveRecord
10
10
  @reflection = reflection
11
11
  end
12
12
 
13
+ def primary_key
14
+ klass&.primary_key
15
+ end
16
+
13
17
  def type(column_name)
14
18
  arel_table.type_for_attribute(column_name)
15
19
  end
@@ -29,10 +33,13 @@ module ActiveRecord
29
33
  return self
30
34
  end
31
35
 
32
- reflection ||= yield table_name if block_given?
36
+ if reflection
37
+ association_klass = reflection.klass unless reflection.polymorphic?
38
+ elsif block_given?
39
+ association_klass = yield table_name
40
+ end
33
41
 
34
- if reflection && !reflection.polymorphic?
35
- association_klass = reflection.klass
42
+ if association_klass
36
43
  arel_table = association_klass.arel_table
37
44
  arel_table = arel_table.alias(table_name) if arel_table.name != table_name
38
45
  TableMetadata.new(association_klass, arel_table, reflection)
@@ -380,6 +380,7 @@ module ActiveRecord
380
380
  filename = dump_filename(db_config.name, format)
381
381
  connection = ActiveRecord::Base.connection
382
382
 
383
+ FileUtils.mkdir_p(db_dir)
383
384
  case format
384
385
  when :ruby
385
386
  File.open(filename, "w:utf-8") do |file|
@@ -271,8 +271,10 @@ module ActiveRecord
271
271
  if options[:on]
272
272
  fire_on = Array(options[:on])
273
273
  assert_valid_transaction_action(fire_on)
274
- options[:if] = Array(options[:if])
275
- options[:if].unshift(-> { transaction_include_any_action?(fire_on) })
274
+ options[:if] = [
275
+ -> { transaction_include_any_action?(fire_on) },
276
+ *options[:if]
277
+ ]
276
278
  end
277
279
  end
278
280
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0.rc1
4
+ version: 6.1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-02 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.1.0.rc1
19
+ version: 6.1.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 6.1.0.rc1
26
+ version: 6.1.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 6.1.0.rc1
33
+ version: 6.1.2.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 6.1.0.rc1
40
+ version: 6.1.2.1
41
41
  description: Databases on Rails. Build a persistent domain model by mapping database
42
42
  tables to Ruby classes. Strong conventions for associations, validations, aggregations,
43
43
  migrations, and testing come baked-in.
@@ -390,10 +390,10 @@ licenses:
390
390
  - MIT
391
391
  metadata:
392
392
  bug_tracker_uri: https://github.com/rails/rails/issues
393
- changelog_uri: https://github.com/rails/rails/blob/v6.1.0.rc1/activerecord/CHANGELOG.md
394
- documentation_uri: https://api.rubyonrails.org/v6.1.0.rc1/
393
+ changelog_uri: https://github.com/rails/rails/blob/v6.1.2.1/activerecord/CHANGELOG.md
394
+ documentation_uri: https://api.rubyonrails.org/v6.1.2.1/
395
395
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
396
- source_code_uri: https://github.com/rails/rails/tree/v6.1.0.rc1/activerecord
396
+ source_code_uri: https://github.com/rails/rails/tree/v6.1.2.1/activerecord
397
397
  post_install_message:
398
398
  rdoc_options:
399
399
  - "--main"
@@ -407,11 +407,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
407
407
  version: 2.5.0
408
408
  required_rubygems_version: !ruby/object:Gem::Requirement
409
409
  requirements:
410
- - - ">"
410
+ - - ">="
411
411
  - !ruby/object:Gem::Version
412
- version: 1.3.1
412
+ version: '0'
413
413
  requirements: []
414
- rubygems_version: 3.1.4
414
+ rubygems_version: 3.0.3
415
415
  signing_key:
416
416
  specification_version: 4
417
417
  summary: Object-relational mapper framework (part of Rails).