activerecord 7.1.0.beta1 → 7.1.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +85 -4
- data/lib/active_record/associations/collection_association.rb +1 -3
- data/lib/active_record/associations/collection_proxy.rb +1 -1
- data/lib/active_record/associations.rb +110 -110
- data/lib/active_record/connection_adapters/abstract/database_statements.rb +20 -1
- data/lib/active_record/connection_adapters/abstract/schema_creation.rb +3 -3
- data/lib/active_record/connection_adapters/abstract/transaction.rb +12 -9
- data/lib/active_record/connection_adapters/abstract_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +7 -0
- data/lib/active_record/connection_adapters/mysql/schema_statements.rb +1 -1
- data/lib/active_record/connection_adapters/pool_manager.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql/database_statements.rb +0 -16
- data/lib/active_record/connection_adapters/postgresql/schema_creation.rb +5 -5
- data/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +24 -24
- data/lib/active_record/connection_adapters/postgresql/schema_dumper.rb +19 -8
- data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +25 -29
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +1 -6
- data/lib/active_record/connection_adapters/schema_cache.rb +2 -2
- data/lib/active_record/connection_adapters/sqlite3/database_statements.rb +4 -4
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +49 -4
- data/lib/active_record/core.rb +7 -9
- data/lib/active_record/encryption/extended_deterministic_uniqueness_validator.rb +1 -1
- data/lib/active_record/errors.rb +19 -0
- data/lib/active_record/gem_version.rb +1 -1
- data/lib/active_record/migration/command_recorder.rb +8 -8
- data/lib/active_record/nested_attributes.rb +0 -5
- data/lib/active_record/normalization.rb +2 -1
- data/lib/active_record/persistence.rb +1 -1
- data/lib/active_record/querying.rb +2 -2
- data/lib/active_record/railtie.rb +1 -1
- data/lib/active_record/reflection.rb +10 -16
- data/lib/active_record/relation/calculations.rb +8 -8
- data/lib/active_record/relation/finder_methods.rb +3 -12
- data/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb +4 -6
- data/lib/active_record/schema_dumper.rb +9 -4
- data/lib/active_record/tasks/sqlite_database_tasks.rb +1 -0
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 105b6eb9b1f55cf060da5abef79eff897bc6cc4ffae4213d00bb60919716de1d
|
4
|
+
data.tar.gz: b2001af69a5d854f66b1f3fd5fc3b2b96161e3185c1b0d11bbcfa606a0a8e3cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a65041e41aa694c421cb83cc41969088ec8c08f5d839fe87b7d9b43c91de2b72d3adb7419858e88fe711654d98b06bf9dad4d8bd6375f4370ff5e40e92782ffb
|
7
|
+
data.tar.gz: 5b821a9ab05cd006337411118066eaf3e46219d8969a414406919a9725927b95e51d70f79d2723e165db58e93417354a697420c531cc53d435b8dd8405d502b1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,84 @@
|
|
1
|
+
## Rails 7.1.0.rc2 (October 01, 2023) ##
|
2
|
+
|
3
|
+
* Remove -shm and -wal SQLite files when `rails db:drop` is run.
|
4
|
+
|
5
|
+
*Niklas Häusele*
|
6
|
+
|
7
|
+
* Revert the change to raise an `ArgumentError` when `#accepts_nested_attributes_for` is declared more than once for
|
8
|
+
an association in the same class.
|
9
|
+
|
10
|
+
The reverted behavior broke the case where the `#accepts_nested_attributes_for` was defined in a concern and
|
11
|
+
where overridden in the class that included the concern.
|
12
|
+
|
13
|
+
*Rafael Mendonça França*
|
14
|
+
|
15
|
+
|
16
|
+
## Rails 7.1.0.rc1 (September 27, 2023) ##
|
17
|
+
|
18
|
+
* Better naming for unique constraints support.
|
19
|
+
|
20
|
+
Naming unique keys leads to misunderstanding it's a short-hand of unique indexes.
|
21
|
+
Just naming it unique constraints is not misleading.
|
22
|
+
|
23
|
+
In Rails 7.1.0.beta1 or before:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
add_unique_key :sections, [:position], deferrable: :deferred, name: "unique_section_position"
|
27
|
+
remove_unique_key :sections, name: "unique_section_position"
|
28
|
+
```
|
29
|
+
|
30
|
+
Now:
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
add_unique_constraint :sections, [:position], deferrable: :deferred, name: "unique_section_position"
|
34
|
+
remove_unique_constraint :sections, name: "unique_section_position"
|
35
|
+
```
|
36
|
+
|
37
|
+
*Ryuta Kamizono*
|
38
|
+
|
39
|
+
* Fix duplicate quoting for check constraint expressions in schema dump when using MySQL
|
40
|
+
|
41
|
+
A check constraint with an expression, that already contains quotes, lead to an invalid schema
|
42
|
+
dump with the mysql2 adapter.
|
43
|
+
|
44
|
+
Fixes #42424.
|
45
|
+
|
46
|
+
*Felix Tscheulin*
|
47
|
+
|
48
|
+
* Performance tune the SQLite3 adapter connection configuration
|
49
|
+
|
50
|
+
For Rails applications, the Write-Ahead-Log in normal syncing mode with a capped journal size, a healthy shared memory buffer and a shared cache will perform, on average, 2× better.
|
51
|
+
|
52
|
+
*Stephen Margheim*
|
53
|
+
|
54
|
+
* Allow SQLite3 `busy_handler` to be configured with simple max number of `retries`
|
55
|
+
|
56
|
+
Retrying busy connections without delay is a preferred practice for performance-sensitive applications. Add support for a `database.yml` `retries` integer, which is used in a simple `busy_handler` function to retry busy connections without exponential backoff up to the max number of `retries`.
|
57
|
+
|
58
|
+
*Stephen Margheim*
|
59
|
+
|
60
|
+
* The SQLite3 adapter now supports `supports_insert_returning?`
|
61
|
+
|
62
|
+
Implementing the full `supports_insert_returning?` contract means the SQLite3 adapter supports auto-populated columns (#48241) as well as custom primary keys.
|
63
|
+
|
64
|
+
*Stephen Margheim*
|
65
|
+
|
66
|
+
* Ensure the SQLite3 adapter handles default functions with the `||` concatenation operator
|
67
|
+
|
68
|
+
Previously, this default function would produce the static string `"'Ruby ' || 'on ' || 'Rails'"`.
|
69
|
+
Now, the adapter will appropriately receive and use `"Ruby on Rails"`.
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
change_column_default "test_models", "ruby_on_rails", -> { "('Ruby ' || 'on ' || 'Rails')" }
|
73
|
+
```
|
74
|
+
|
75
|
+
*Stephen Margheim*
|
76
|
+
|
77
|
+
* Dump PostgreSQL schemas as part of the schema dump.
|
78
|
+
|
79
|
+
*Lachlan Sylvester*
|
80
|
+
|
81
|
+
|
1
82
|
## Rails 7.1.0.beta1 (September 13, 2023) ##
|
2
83
|
|
3
84
|
* Encryption now supports `support_unencrypted_data` being set per-attribute.
|
@@ -16,7 +97,7 @@
|
|
16
97
|
|
17
98
|
* Add instrumentation for Active Record transactions
|
18
99
|
|
19
|
-
Allows subscribing to transaction events for tracking/instrumentation. The event payload contains the connection, as well as timing details.
|
100
|
+
Allows subscribing to transaction events for tracking/instrumentation. The event payload contains the connection and the outcome (commit, rollback, restart, incomplete), as well as timing details.
|
20
101
|
|
21
102
|
```ruby
|
22
103
|
ActiveSupport::Notifications.subscribe("transaction.active_record") do |event|
|
@@ -601,7 +682,7 @@
|
|
601
682
|
|
602
683
|
# Topic => Topic(id: integer, title: string, author_name: string...)
|
603
684
|
|
604
|
-
Topic.where([:title, :author_name] => [["The Alchemist", "
|
685
|
+
Topic.where([:title, :author_name] => [["The Alchemist", "Paulo Coelho"], ["Harry Potter", "J.K Rowling"]])
|
605
686
|
```
|
606
687
|
|
607
688
|
*Paarth Madan*
|
@@ -852,7 +933,7 @@
|
|
852
933
|
|
853
934
|
*Jean Boussier*
|
854
935
|
|
855
|
-
* YAML columns use `YAML.safe_dump`
|
936
|
+
* YAML columns use `YAML.safe_dump` if available.
|
856
937
|
|
857
938
|
As of `psych 5.1.0`, `YAML.safe_dump` can now apply the same permitted
|
858
939
|
types restrictions than `YAML.safe_load`.
|
@@ -1354,7 +1435,7 @@
|
|
1354
1435
|
|
1355
1436
|
*Adrianna Chang*
|
1356
1437
|
|
1357
|
-
* Add `
|
1438
|
+
* Add `expires_at` option to `signed_id`.
|
1358
1439
|
|
1359
1440
|
*Shouichi Kamiya*
|
1360
1441
|
|
@@ -64,9 +64,7 @@ module ActiveRecord
|
|
64
64
|
ids.map! { |id| pk_type.cast(id) }
|
65
65
|
|
66
66
|
records = if klass.composite_primary_key?
|
67
|
-
|
68
|
-
|
69
|
-
query_records.index_by do |record|
|
67
|
+
klass.where(primary_key => ids).index_by do |record|
|
70
68
|
primary_key.map { |primary_key| record._read_attribute(primary_key) }
|
71
69
|
end
|
72
70
|
else
|
@@ -361,7 +361,7 @@ module ActiveRecord
|
|
361
361
|
# end
|
362
362
|
#
|
363
363
|
# person.pets.create!(name: nil)
|
364
|
-
# # => ActiveRecord::RecordInvalid: Validation failed: Name can
|
364
|
+
# # => ActiveRecord::RecordInvalid: Validation failed: Name can't be blank
|
365
365
|
def create!(attributes = {}, &block)
|
366
366
|
@association.create!(attributes, &block)
|
367
367
|
end
|