activerecord 6.1.7 → 7.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2030 -1020
- data/MIT-LICENSE +1 -1
- data/README.rdoc +18 -18
- data/lib/active_record/aggregations.rb +17 -14
- data/lib/active_record/association_relation.rb +1 -11
- data/lib/active_record/associations/association.rb +51 -19
- data/lib/active_record/associations/association_scope.rb +17 -12
- data/lib/active_record/associations/belongs_to_association.rb +28 -9
- data/lib/active_record/associations/belongs_to_polymorphic_association.rb +10 -2
- data/lib/active_record/associations/builder/association.rb +11 -5
- data/lib/active_record/associations/builder/belongs_to.rb +40 -14
- data/lib/active_record/associations/builder/collection_association.rb +10 -3
- data/lib/active_record/associations/builder/has_and_belongs_to_many.rb +1 -5
- data/lib/active_record/associations/builder/has_many.rb +3 -2
- data/lib/active_record/associations/builder/has_one.rb +2 -1
- data/lib/active_record/associations/builder/singular_association.rb +6 -2
- data/lib/active_record/associations/collection_association.rb +39 -35
- data/lib/active_record/associations/collection_proxy.rb +30 -15
- data/lib/active_record/associations/disable_joins_association_scope.rb +59 -0
- data/lib/active_record/associations/foreign_association.rb +10 -3
- data/lib/active_record/associations/has_many_association.rb +28 -18
- data/lib/active_record/associations/has_many_through_association.rb +12 -7
- data/lib/active_record/associations/has_one_association.rb +20 -10
- data/lib/active_record/associations/has_one_through_association.rb +1 -1
- data/lib/active_record/associations/join_dependency/join_association.rb +3 -2
- data/lib/active_record/associations/join_dependency.rb +28 -20
- data/lib/active_record/associations/preloader/association.rb +210 -52
- data/lib/active_record/associations/preloader/batch.rb +48 -0
- data/lib/active_record/associations/preloader/branch.rb +147 -0
- data/lib/active_record/associations/preloader/through_association.rb +50 -14
- data/lib/active_record/associations/preloader.rb +50 -121
- data/lib/active_record/associations/singular_association.rb +9 -3
- data/lib/active_record/associations/through_association.rb +25 -14
- data/lib/active_record/associations.rb +446 -306
- data/lib/active_record/asynchronous_queries_tracker.rb +60 -0
- data/lib/active_record/attribute_assignment.rb +1 -3
- data/lib/active_record/attribute_methods/before_type_cast.rb +24 -2
- data/lib/active_record/attribute_methods/dirty.rb +73 -22
- data/lib/active_record/attribute_methods/primary_key.rb +78 -26
- data/lib/active_record/attribute_methods/query.rb +31 -19
- data/lib/active_record/attribute_methods/read.rb +27 -12
- data/lib/active_record/attribute_methods/serialization.rb +194 -37
- data/lib/active_record/attribute_methods/time_zone_conversion.rb +8 -3
- data/lib/active_record/attribute_methods/write.rb +12 -15
- data/lib/active_record/attribute_methods.rb +161 -40
- data/lib/active_record/attributes.rb +27 -38
- data/lib/active_record/autosave_association.rb +65 -31
- data/lib/active_record/base.rb +25 -2
- data/lib/active_record/callbacks.rb +18 -34
- data/lib/active_record/coders/column_serializer.rb +61 -0
- data/lib/active_record/coders/json.rb +1 -1
- data/lib/active_record/coders/yaml_column.rb +70 -46
- data/lib/active_record/connection_adapters/abstract/connection_handler.rb +367 -0
- data/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb +211 -0
- data/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb +78 -0
- data/lib/active_record/connection_adapters/abstract/connection_pool.rb +113 -597
- data/lib/active_record/connection_adapters/abstract/database_limits.rb +5 -17
- data/lib/active_record/connection_adapters/abstract/database_statements.rb +172 -50
- data/lib/active_record/connection_adapters/abstract/query_cache.rb +78 -27
- data/lib/active_record/connection_adapters/abstract/quoting.rb +87 -73
- data/lib/active_record/connection_adapters/abstract/savepoints.rb +4 -3
- data/lib/active_record/connection_adapters/abstract/schema_creation.rb +21 -20
- data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +186 -31
- data/lib/active_record/connection_adapters/abstract/schema_dumper.rb +14 -1
- data/lib/active_record/connection_adapters/abstract/schema_statements.rb +367 -141
- data/lib/active_record/connection_adapters/abstract/transaction.rb +281 -59
- data/lib/active_record/connection_adapters/abstract_adapter.rb +631 -150
- data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +317 -164
- data/lib/active_record/connection_adapters/column.rb +13 -0
- data/lib/active_record/connection_adapters/mysql/column.rb +1 -0
- data/lib/active_record/connection_adapters/mysql/database_statements.rb +25 -134
- data/lib/active_record/connection_adapters/mysql/quoting.rb +56 -25
- data/lib/active_record/connection_adapters/mysql/schema_creation.rb +9 -0
- data/lib/active_record/connection_adapters/mysql/schema_definitions.rb +10 -1
- data/lib/active_record/connection_adapters/mysql/schema_dumper.rb +8 -2
- data/lib/active_record/connection_adapters/mysql/schema_statements.rb +39 -14
- data/lib/active_record/connection_adapters/mysql2/database_statements.rb +151 -0
- data/lib/active_record/connection_adapters/mysql2_adapter.rb +112 -55
- data/lib/active_record/connection_adapters/pool_config.rb +20 -11
- data/lib/active_record/connection_adapters/pool_manager.rb +19 -9
- data/lib/active_record/connection_adapters/postgresql/column.rb +30 -1
- data/lib/active_record/connection_adapters/postgresql/database_statements.rb +89 -52
- data/lib/active_record/connection_adapters/postgresql/oid/array.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql/oid/cidr.rb +6 -0
- data/lib/active_record/connection_adapters/postgresql/oid/date.rb +8 -0
- data/lib/active_record/connection_adapters/postgresql/oid/date_time.rb +5 -0
- data/lib/active_record/connection_adapters/postgresql/oid/hstore.rb +53 -14
- data/lib/active_record/connection_adapters/postgresql/oid/money.rb +3 -2
- data/lib/active_record/connection_adapters/postgresql/oid/range.rb +12 -3
- data/lib/active_record/connection_adapters/postgresql/oid/timestamp.rb +15 -0
- data/lib/active_record/connection_adapters/postgresql/oid/timestamp_with_time_zone.rb +30 -0
- data/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb +18 -6
- data/lib/active_record/connection_adapters/postgresql/oid.rb +2 -0
- data/lib/active_record/connection_adapters/postgresql/quoting.rb +89 -56
- data/lib/active_record/connection_adapters/postgresql/referential_integrity.rb +28 -0
- data/lib/active_record/connection_adapters/postgresql/schema_creation.rb +92 -2
- data/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +153 -3
- data/lib/active_record/connection_adapters/postgresql/schema_dumper.rb +78 -0
- data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +397 -75
- data/lib/active_record/connection_adapters/postgresql/utils.rb +9 -10
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +508 -246
- data/lib/active_record/connection_adapters/schema_cache.rb +319 -90
- data/lib/active_record/connection_adapters/sqlite3/column.rb +49 -0
- data/lib/active_record/connection_adapters/sqlite3/database_statements.rb +72 -53
- data/lib/active_record/connection_adapters/sqlite3/quoting.rb +37 -21
- data/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb +7 -0
- data/lib/active_record/connection_adapters/sqlite3/schema_statements.rb +43 -22
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +296 -104
- data/lib/active_record/connection_adapters/statement_pool.rb +7 -0
- data/lib/active_record/connection_adapters/trilogy/database_statements.rb +99 -0
- data/lib/active_record/connection_adapters/trilogy_adapter.rb +258 -0
- data/lib/active_record/connection_adapters.rb +9 -6
- data/lib/active_record/connection_handling.rb +108 -137
- data/lib/active_record/core.rb +242 -233
- data/lib/active_record/counter_cache.rb +52 -27
- data/lib/active_record/database_configurations/connection_url_resolver.rb +3 -2
- data/lib/active_record/database_configurations/database_config.rb +21 -12
- data/lib/active_record/database_configurations/hash_config.rb +88 -16
- data/lib/active_record/database_configurations/url_config.rb +18 -12
- data/lib/active_record/database_configurations.rb +95 -59
- data/lib/active_record/delegated_type.rb +66 -20
- data/lib/active_record/deprecator.rb +7 -0
- data/lib/active_record/destroy_association_async_job.rb +4 -2
- data/lib/active_record/disable_joins_association_relation.rb +39 -0
- data/lib/active_record/dynamic_matchers.rb +1 -1
- data/lib/active_record/encryption/auto_filtered_parameters.rb +66 -0
- data/lib/active_record/encryption/cipher/aes256_gcm.rb +101 -0
- data/lib/active_record/encryption/cipher.rb +53 -0
- data/lib/active_record/encryption/config.rb +68 -0
- data/lib/active_record/encryption/configurable.rb +60 -0
- data/lib/active_record/encryption/context.rb +42 -0
- data/lib/active_record/encryption/contexts.rb +76 -0
- data/lib/active_record/encryption/derived_secret_key_provider.rb +18 -0
- data/lib/active_record/encryption/deterministic_key_provider.rb +14 -0
- data/lib/active_record/encryption/encryptable_record.rb +230 -0
- data/lib/active_record/encryption/encrypted_attribute_type.rb +155 -0
- data/lib/active_record/encryption/encrypted_fixtures.rb +38 -0
- data/lib/active_record/encryption/encrypting_only_encryptor.rb +12 -0
- data/lib/active_record/encryption/encryptor.rb +155 -0
- data/lib/active_record/encryption/envelope_encryption_key_provider.rb +55 -0
- data/lib/active_record/encryption/errors.rb +15 -0
- data/lib/active_record/encryption/extended_deterministic_queries.rb +157 -0
- data/lib/active_record/encryption/extended_deterministic_uniqueness_validator.rb +28 -0
- data/lib/active_record/encryption/key.rb +28 -0
- data/lib/active_record/encryption/key_generator.rb +53 -0
- data/lib/active_record/encryption/key_provider.rb +46 -0
- data/lib/active_record/encryption/message.rb +33 -0
- data/lib/active_record/encryption/message_serializer.rb +92 -0
- data/lib/active_record/encryption/null_encryptor.rb +21 -0
- data/lib/active_record/encryption/properties.rb +76 -0
- data/lib/active_record/encryption/read_only_null_encryptor.rb +24 -0
- data/lib/active_record/encryption/scheme.rb +100 -0
- data/lib/active_record/encryption.rb +58 -0
- data/lib/active_record/enum.rb +154 -63
- data/lib/active_record/errors.rb +172 -15
- data/lib/active_record/explain.rb +23 -3
- data/lib/active_record/explain_registry.rb +11 -6
- data/lib/active_record/explain_subscriber.rb +1 -1
- data/lib/active_record/fixture_set/file.rb +15 -1
- data/lib/active_record/fixture_set/model_metadata.rb +14 -4
- data/lib/active_record/fixture_set/render_context.rb +2 -0
- data/lib/active_record/fixture_set/table_row.rb +70 -14
- data/lib/active_record/fixture_set/table_rows.rb +4 -4
- data/lib/active_record/fixtures.rb +147 -86
- data/lib/active_record/future_result.rb +174 -0
- data/lib/active_record/gem_version.rb +3 -3
- data/lib/active_record/inheritance.rb +81 -29
- data/lib/active_record/insert_all.rb +135 -22
- data/lib/active_record/integration.rb +11 -10
- data/lib/active_record/internal_metadata.rb +119 -33
- data/lib/active_record/legacy_yaml_adapter.rb +2 -39
- data/lib/active_record/locking/optimistic.rb +37 -22
- data/lib/active_record/locking/pessimistic.rb +15 -6
- data/lib/active_record/log_subscriber.rb +52 -19
- data/lib/active_record/marshalling.rb +59 -0
- data/lib/active_record/message_pack.rb +124 -0
- data/lib/active_record/middleware/database_selector/resolver.rb +10 -10
- data/lib/active_record/middleware/database_selector.rb +23 -13
- data/lib/active_record/middleware/shard_selector.rb +62 -0
- data/lib/active_record/migration/command_recorder.rb +112 -14
- data/lib/active_record/migration/compatibility.rb +233 -46
- data/lib/active_record/migration/default_strategy.rb +23 -0
- data/lib/active_record/migration/execution_strategy.rb +19 -0
- data/lib/active_record/migration/join_table.rb +1 -1
- data/lib/active_record/migration/pending_migration_connection.rb +21 -0
- data/lib/active_record/migration.rb +361 -173
- data/lib/active_record/model_schema.rb +125 -101
- data/lib/active_record/nested_attributes.rb +50 -20
- data/lib/active_record/no_touching.rb +3 -3
- data/lib/active_record/normalization.rb +167 -0
- data/lib/active_record/persistence.rb +409 -88
- data/lib/active_record/promise.rb +84 -0
- data/lib/active_record/query_cache.rb +4 -22
- data/lib/active_record/query_logs.rb +174 -0
- data/lib/active_record/query_logs_formatter.rb +41 -0
- data/lib/active_record/querying.rb +29 -6
- data/lib/active_record/railtie.rb +220 -44
- data/lib/active_record/railties/controller_runtime.rb +15 -10
- data/lib/active_record/railties/databases.rake +188 -252
- data/lib/active_record/railties/job_runtime.rb +23 -0
- data/lib/active_record/readonly_attributes.rb +41 -3
- data/lib/active_record/reflection.rb +248 -81
- data/lib/active_record/relation/batches/batch_enumerator.rb +23 -7
- data/lib/active_record/relation/batches.rb +192 -63
- data/lib/active_record/relation/calculations.rb +246 -90
- data/lib/active_record/relation/delegation.rb +28 -14
- data/lib/active_record/relation/finder_methods.rb +108 -51
- data/lib/active_record/relation/merger.rb +22 -13
- data/lib/active_record/relation/predicate_builder/association_query_value.rb +31 -3
- data/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb +10 -7
- data/lib/active_record/relation/predicate_builder/relation_handler.rb +5 -1
- data/lib/active_record/relation/predicate_builder.rb +27 -20
- data/lib/active_record/relation/query_attribute.rb +30 -12
- data/lib/active_record/relation/query_methods.rb +670 -129
- data/lib/active_record/relation/record_fetch_warning.rb +7 -9
- data/lib/active_record/relation/spawn_methods.rb +20 -3
- data/lib/active_record/relation/where_clause.rb +10 -19
- data/lib/active_record/relation.rb +287 -120
- data/lib/active_record/result.rb +37 -11
- data/lib/active_record/runtime_registry.rb +32 -13
- data/lib/active_record/sanitization.rb +65 -20
- data/lib/active_record/schema.rb +36 -22
- data/lib/active_record/schema_dumper.rb +73 -24
- data/lib/active_record/schema_migration.rb +68 -33
- data/lib/active_record/scoping/default.rb +72 -15
- data/lib/active_record/scoping/named.rb +5 -13
- data/lib/active_record/scoping.rb +65 -34
- data/lib/active_record/secure_password.rb +60 -0
- data/lib/active_record/secure_token.rb +21 -3
- data/lib/active_record/serialization.rb +6 -1
- data/lib/active_record/signed_id.rb +10 -8
- data/lib/active_record/store.rb +10 -10
- data/lib/active_record/suppressor.rb +13 -15
- data/lib/active_record/table_metadata.rb +16 -3
- data/lib/active_record/tasks/database_tasks.rb +251 -140
- data/lib/active_record/tasks/mysql_database_tasks.rb +16 -7
- data/lib/active_record/tasks/postgresql_database_tasks.rb +35 -26
- data/lib/active_record/tasks/sqlite_database_tasks.rb +15 -7
- data/lib/active_record/test_databases.rb +1 -1
- data/lib/active_record/test_fixtures.rb +117 -96
- data/lib/active_record/timestamp.rb +32 -19
- data/lib/active_record/token_for.rb +113 -0
- data/lib/active_record/touch_later.rb +11 -6
- data/lib/active_record/transactions.rb +48 -27
- data/lib/active_record/translation.rb +3 -3
- data/lib/active_record/type/adapter_specific_registry.rb +32 -14
- data/lib/active_record/type/hash_lookup_type_map.rb +34 -1
- data/lib/active_record/type/internal/timezone.rb +7 -2
- data/lib/active_record/type/serialized.rb +9 -5
- data/lib/active_record/type/time.rb +4 -0
- data/lib/active_record/type/type_map.rb +17 -20
- data/lib/active_record/type.rb +1 -2
- data/lib/active_record/validations/absence.rb +1 -1
- data/lib/active_record/validations/associated.rb +4 -4
- data/lib/active_record/validations/numericality.rb +5 -4
- data/lib/active_record/validations/presence.rb +5 -28
- data/lib/active_record/validations/uniqueness.rb +51 -6
- data/lib/active_record/validations.rb +8 -4
- data/lib/active_record/version.rb +1 -1
- data/lib/active_record.rb +335 -32
- data/lib/arel/attributes/attribute.rb +0 -8
- data/lib/arel/crud.rb +28 -22
- data/lib/arel/delete_manager.rb +18 -4
- data/lib/arel/errors.rb +10 -0
- data/lib/arel/factory_methods.rb +4 -0
- data/lib/arel/filter_predications.rb +9 -0
- data/lib/arel/insert_manager.rb +2 -3
- data/lib/arel/nodes/and.rb +4 -0
- data/lib/arel/nodes/binary.rb +6 -1
- data/lib/arel/nodes/bound_sql_literal.rb +61 -0
- data/lib/arel/nodes/casted.rb +1 -1
- data/lib/arel/nodes/cte.rb +36 -0
- data/lib/arel/nodes/delete_statement.rb +12 -13
- data/lib/arel/nodes/filter.rb +10 -0
- data/lib/arel/nodes/fragments.rb +35 -0
- data/lib/arel/nodes/function.rb +1 -0
- data/lib/arel/nodes/homogeneous_in.rb +1 -9
- data/lib/arel/nodes/insert_statement.rb +2 -2
- data/lib/arel/nodes/leading_join.rb +8 -0
- data/lib/arel/nodes/node.rb +111 -2
- data/lib/arel/nodes/select_core.rb +2 -2
- data/lib/arel/nodes/select_statement.rb +2 -2
- data/lib/arel/nodes/sql_literal.rb +6 -0
- data/lib/arel/nodes/table_alias.rb +4 -0
- data/lib/arel/nodes/update_statement.rb +8 -3
- data/lib/arel/nodes.rb +5 -0
- data/lib/arel/predications.rb +13 -3
- data/lib/arel/select_manager.rb +10 -4
- data/lib/arel/table.rb +9 -6
- data/lib/arel/tree_manager.rb +5 -13
- data/lib/arel/update_manager.rb +18 -4
- data/lib/arel/visitors/dot.rb +80 -90
- data/lib/arel/visitors/mysql.rb +16 -3
- data/lib/arel/visitors/postgresql.rb +0 -10
- data/lib/arel/visitors/to_sql.rb +141 -20
- data/lib/arel/visitors/visitor.rb +2 -2
- data/lib/arel.rb +18 -3
- data/lib/rails/generators/active_record/application_record/USAGE +8 -0
- data/lib/rails/generators/active_record/application_record/templates/application_record.rb.tt +1 -1
- data/lib/rails/generators/active_record/migration.rb +3 -1
- data/lib/rails/generators/active_record/model/USAGE +113 -0
- data/lib/rails/generators/active_record/model/model_generator.rb +15 -6
- data/lib/rails/generators/active_record/model/templates/abstract_base_class.rb.tt +1 -1
- data/lib/rails/generators/active_record/model/templates/model.rb.tt +1 -1
- data/lib/rails/generators/active_record/model/templates/module.rb.tt +2 -2
- data/lib/rails/generators/active_record/multi_db/multi_db_generator.rb +16 -0
- data/lib/rails/generators/active_record/multi_db/templates/multi_db.rb.tt +44 -0
- metadata +96 -16
- data/lib/active_record/connection_adapters/legacy_pool_manager.rb +0 -35
- data/lib/active_record/null_relation.rb +0 -67
@@ -41,11 +41,13 @@ module ActiveRecord
|
|
41
41
|
|
42
42
|
def configured_migrate_path
|
43
43
|
return unless database = options[:database]
|
44
|
+
|
44
45
|
config = ActiveRecord::Base.configurations.configs_for(
|
45
46
|
env_name: Rails.env,
|
46
47
|
name: database
|
47
48
|
)
|
48
|
-
|
49
|
+
|
50
|
+
Array(config&.migrations_paths).first
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
Description:
|
2
|
+
Generates a new model. Pass the model name, either CamelCased or
|
3
|
+
under_scored, and an optional list of attribute pairs as arguments.
|
4
|
+
|
5
|
+
Attribute pairs are field:type arguments specifying the
|
6
|
+
model's attributes. Timestamps are added by default, so you don't have to
|
7
|
+
specify them by hand as 'created_at:datetime updated_at:datetime'.
|
8
|
+
|
9
|
+
As a special case, specifying 'password:digest' will generate a
|
10
|
+
password_digest field of string type, and configure your generated model and
|
11
|
+
tests for use with Active Model has_secure_password (assuming the default ORM
|
12
|
+
and test framework are being used).
|
13
|
+
|
14
|
+
You don't have to think up every attribute up front, but it helps to
|
15
|
+
sketch out a few so you can start working with the model immediately.
|
16
|
+
|
17
|
+
This generator invokes your configured ORM and test framework, which
|
18
|
+
defaults to Active Record and TestUnit.
|
19
|
+
|
20
|
+
Finally, if --parent option is given, it's used as superclass of the
|
21
|
+
created model. This allows you create Single Table Inheritance models.
|
22
|
+
|
23
|
+
If you pass a namespaced model name (e.g. admin/account or Admin::Account)
|
24
|
+
then the generator will create a module with a table_name_prefix method
|
25
|
+
to prefix the model's table name with the module name (e.g. admin_accounts)
|
26
|
+
|
27
|
+
Available field types:
|
28
|
+
|
29
|
+
Just after the field name you can specify a type like text or boolean.
|
30
|
+
It will generate the column with the associated SQL type. For instance:
|
31
|
+
|
32
|
+
`bin/rails generate model post title:string body:text`
|
33
|
+
|
34
|
+
will generate a title column with a varchar type and a body column with a text
|
35
|
+
type. If no type is specified the string type will be used by default.
|
36
|
+
You can use the following types:
|
37
|
+
|
38
|
+
integer
|
39
|
+
primary_key
|
40
|
+
decimal
|
41
|
+
float
|
42
|
+
boolean
|
43
|
+
binary
|
44
|
+
string
|
45
|
+
text
|
46
|
+
date
|
47
|
+
time
|
48
|
+
datetime
|
49
|
+
|
50
|
+
You can also consider `references` as a kind of type. For instance, if you run:
|
51
|
+
|
52
|
+
`bin/rails generate model photo title:string album:references`
|
53
|
+
|
54
|
+
It will generate an `album_id` column. You should generate these kinds of fields when
|
55
|
+
you will use a `belongs_to` association, for instance. `references` also supports
|
56
|
+
polymorphism, you can enable polymorphism like this:
|
57
|
+
|
58
|
+
`bin/rails generate model product supplier:references{polymorphic}`
|
59
|
+
|
60
|
+
For integer, string, text and binary fields, an integer in curly braces will
|
61
|
+
be set as the limit:
|
62
|
+
|
63
|
+
`bin/rails generate model user pseudo:string{30}`
|
64
|
+
|
65
|
+
For decimal, two integers separated by a comma in curly braces will be used
|
66
|
+
for precision and scale:
|
67
|
+
|
68
|
+
`bin/rails generate model product 'price:decimal{10,2}'`
|
69
|
+
|
70
|
+
You can add a `:uniq` or `:index` suffix for unique or standard indexes
|
71
|
+
respectively:
|
72
|
+
|
73
|
+
`bin/rails generate model user pseudo:string:uniq`
|
74
|
+
`bin/rails generate model user pseudo:string:index`
|
75
|
+
|
76
|
+
You can combine any single curly brace option with the index options:
|
77
|
+
|
78
|
+
`bin/rails generate model user username:string{30}:uniq`
|
79
|
+
`bin/rails generate model product supplier:references{polymorphic}:index`
|
80
|
+
|
81
|
+
If you require a `password_digest` string column for use with
|
82
|
+
has_secure_password, you can specify `password:digest`:
|
83
|
+
|
84
|
+
`bin/rails generate model user password:digest`
|
85
|
+
|
86
|
+
If you require a `token` string column for use with
|
87
|
+
has_secure_token, you can specify `auth_token:token`:
|
88
|
+
|
89
|
+
`bin/rails generate model user auth_token:token`
|
90
|
+
|
91
|
+
Examples:
|
92
|
+
`bin/rails generate model account`
|
93
|
+
|
94
|
+
For Active Record and TestUnit it creates:
|
95
|
+
|
96
|
+
Model: app/models/account.rb
|
97
|
+
Test: test/models/account_test.rb
|
98
|
+
Fixtures: test/fixtures/accounts.yml
|
99
|
+
Migration: db/migrate/XXX_create_accounts.rb
|
100
|
+
|
101
|
+
`bin/rails generate model post title:string body:text published:boolean`
|
102
|
+
|
103
|
+
Creates a Post model with a string title, text body, and published flag.
|
104
|
+
|
105
|
+
`bin/rails generate model admin/account`
|
106
|
+
|
107
|
+
For Active Record and TestUnit it creates:
|
108
|
+
|
109
|
+
Module: app/models/admin.rb
|
110
|
+
Model: app/models/admin/account.rb
|
111
|
+
Test: test/models/admin/account_test.rb
|
112
|
+
Fixtures: test/fixtures/admin/accounts.yml
|
113
|
+
Migration: db/migrate/XXX_create_admin_accounts.rb
|
@@ -11,20 +11,25 @@ module ActiveRecord
|
|
11
11
|
|
12
12
|
class_option :migration, type: :boolean
|
13
13
|
class_option :timestamps, type: :boolean
|
14
|
-
class_option :parent, type: :string, desc: "The parent class for the generated model"
|
14
|
+
class_option :parent, type: :string, default: "ApplicationRecord", desc: "The parent class for the generated model"
|
15
15
|
class_option :indexes, type: :boolean, default: true, desc: "Add indexes for references and belongs_to columns"
|
16
16
|
class_option :primary_key_type, type: :string, desc: "The type for primary key"
|
17
17
|
class_option :database, type: :string, aliases: %i(--db), desc: "The database for your model's migration. By default, the current environment's primary database is used."
|
18
18
|
|
19
|
+
Rails::Generators.templates_path.each do |path|
|
20
|
+
source_paths << File.join(path, base_name, "migration")
|
21
|
+
end
|
22
|
+
source_paths << File.expand_path(File.join(base_name, "migration", "templates"), base_root)
|
23
|
+
|
19
24
|
# creates the migration file for the model.
|
20
25
|
def create_migration_file
|
21
26
|
return if skip_migration_creation?
|
22
27
|
attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if options[:indexes] == false
|
23
|
-
migration_template "
|
28
|
+
migration_template "create_table_migration.rb", File.join(db_migrate_path, "create_#{table_name}.rb")
|
24
29
|
end
|
25
30
|
|
26
31
|
def create_model_file
|
27
|
-
generate_abstract_class if database && !
|
32
|
+
generate_abstract_class if database && !custom_parent?
|
28
33
|
template "model.rb", File.join("app/models", class_path, "#{file_name}.rb")
|
29
34
|
end
|
30
35
|
|
@@ -40,7 +45,7 @@ module ActiveRecord
|
|
40
45
|
# - options parent is present and database option is not present
|
41
46
|
# - migrations option is nil or false
|
42
47
|
def skip_migration_creation?
|
43
|
-
|
48
|
+
custom_parent? && !database || !migration
|
44
49
|
end
|
45
50
|
|
46
51
|
def attributes_with_index
|
@@ -49,12 +54,12 @@ module ActiveRecord
|
|
49
54
|
|
50
55
|
# Used by the migration template to determine the parent name of the model
|
51
56
|
def parent_class_name
|
52
|
-
if
|
57
|
+
if custom_parent?
|
53
58
|
parent
|
54
59
|
elsif database
|
55
60
|
abstract_class_name
|
56
61
|
else
|
57
|
-
|
62
|
+
parent
|
58
63
|
end
|
59
64
|
end
|
60
65
|
|
@@ -77,6 +82,10 @@ module ActiveRecord
|
|
77
82
|
options[:parent]
|
78
83
|
end
|
79
84
|
|
85
|
+
def custom_parent?
|
86
|
+
parent != self.class.class_options[:parent].default
|
87
|
+
end
|
88
|
+
|
80
89
|
def migration
|
81
90
|
options[:migration]
|
82
91
|
end
|
@@ -2,6 +2,6 @@
|
|
2
2
|
class <%= abstract_class_name %> < ApplicationRecord
|
3
3
|
self.abstract_class = true
|
4
4
|
|
5
|
-
connects_to database: { <%= ActiveRecord
|
5
|
+
connects_to database: { <%= ActiveRecord.writing_role %>: :<%= database -%> }
|
6
6
|
end
|
7
7
|
<% end -%>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% module_namespacing do -%>
|
2
2
|
class <%= class_name %> < <%= parent_class_name.classify %>
|
3
3
|
<% attributes.select(&:reference?).each do |attribute| -%>
|
4
|
-
belongs_to :<%= attribute.name %><%=
|
4
|
+
belongs_to :<%= attribute.name %><%= ", polymorphic: true" if attribute.polymorphic? %>
|
5
5
|
<% end -%>
|
6
6
|
<% attributes.select(&:rich_text?).each do |attribute| -%>
|
7
7
|
has_rich_text :<%= attribute.name %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% module_namespacing do -%>
|
2
|
-
module <%= class_path.map(&:camelize).join(
|
2
|
+
module <%= class_path.map(&:camelize).join("::") %>
|
3
3
|
def self.table_name_prefix
|
4
|
-
|
4
|
+
"<%= namespaced? ? namespaced_class_path.join("_") : class_path.join("_") %>_"
|
5
5
|
end
|
6
6
|
end
|
7
7
|
<% end -%>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/active_record"
|
4
|
+
|
5
|
+
module ActiveRecord
|
6
|
+
module Generators # :nodoc:
|
7
|
+
class MultiDbGenerator < ::Rails::Generators::Base # :nodoc:
|
8
|
+
source_root File.expand_path("templates", __dir__)
|
9
|
+
|
10
|
+
def create_multi_db
|
11
|
+
filename = "multi_db.rb"
|
12
|
+
template filename, "config/initializers/#{filename}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Multi-db Configuration
|
2
|
+
#
|
3
|
+
# This file is used for configuration settings related to multiple databases.
|
4
|
+
#
|
5
|
+
# Enable Database Selector
|
6
|
+
#
|
7
|
+
# Inserts middleware to perform automatic connection switching.
|
8
|
+
# The `database_selector` hash is used to pass options to the DatabaseSelector
|
9
|
+
# middleware. The `delay` is used to determine how long to wait after a write
|
10
|
+
# to send a subsequent read to the primary.
|
11
|
+
#
|
12
|
+
# The `database_resolver` class is used by the middleware to determine which
|
13
|
+
# database is appropriate to use based on the time delay.
|
14
|
+
#
|
15
|
+
# The `database_resolver_context` class is used by the middleware to set
|
16
|
+
# timestamps for the last write to the primary. The resolver uses the context
|
17
|
+
# class timestamps to determine how long to wait before reading from the
|
18
|
+
# replica.
|
19
|
+
#
|
20
|
+
# By default Rails will store a last write timestamp in the session. The
|
21
|
+
# DatabaseSelector middleware is designed as such you can define your own
|
22
|
+
# strategy for connection switching and pass that into the middleware through
|
23
|
+
# these configuration options.
|
24
|
+
#
|
25
|
+
# Rails.application.configure do
|
26
|
+
# config.active_record.database_selector = { delay: 2.seconds }
|
27
|
+
# config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
|
28
|
+
# config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
# Enable Shard Selector
|
32
|
+
#
|
33
|
+
# Inserts middleware to perform automatic shard swapping. The `shard_selector` hash
|
34
|
+
# can be used to pass options to the `ShardSelector` middleware. The `lock` option is
|
35
|
+
# used to determine whether shard swapping should be prohibited for the request.
|
36
|
+
#
|
37
|
+
# The `shard_resolver` option is used by the middleware to determine which shard
|
38
|
+
# to switch to. The application must provide a mechanism for finding the shard name
|
39
|
+
# in a proc. See guides for an example.
|
40
|
+
#
|
41
|
+
# Rails.application.configure do
|
42
|
+
# config.active_record.shard_selector = { lock: true }
|
43
|
+
# config.active_record.shard_resolver = ->(request) { Tenant.find_by!(host: request.host).shard }
|
44
|
+
# end
|
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:
|
4
|
+
version: 7.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,28 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 7.1.5
|
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:
|
26
|
+
version: 7.1.5
|
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:
|
33
|
+
version: 7.1.5
|
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:
|
40
|
+
version: 7.1.5
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: timeout
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.4.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.0
|
41
55
|
description: Databases on Rails. Build a persistent domain model by mapping database
|
42
56
|
tables to Ruby classes. Strong conventions for associations, validations, aggregations,
|
43
57
|
migrations, and testing come baked-in.
|
@@ -70,6 +84,7 @@ files:
|
|
70
84
|
- lib/active_record/associations/builder/singular_association.rb
|
71
85
|
- lib/active_record/associations/collection_association.rb
|
72
86
|
- lib/active_record/associations/collection_proxy.rb
|
87
|
+
- lib/active_record/associations/disable_joins_association_scope.rb
|
73
88
|
- lib/active_record/associations/foreign_association.rb
|
74
89
|
- lib/active_record/associations/has_many_association.rb
|
75
90
|
- lib/active_record/associations/has_many_through_association.rb
|
@@ -81,9 +96,12 @@ files:
|
|
81
96
|
- lib/active_record/associations/join_dependency/join_part.rb
|
82
97
|
- lib/active_record/associations/preloader.rb
|
83
98
|
- lib/active_record/associations/preloader/association.rb
|
99
|
+
- lib/active_record/associations/preloader/batch.rb
|
100
|
+
- lib/active_record/associations/preloader/branch.rb
|
84
101
|
- lib/active_record/associations/preloader/through_association.rb
|
85
102
|
- lib/active_record/associations/singular_association.rb
|
86
103
|
- lib/active_record/associations/through_association.rb
|
104
|
+
- lib/active_record/asynchronous_queries_tracker.rb
|
87
105
|
- lib/active_record/attribute_assignment.rb
|
88
106
|
- lib/active_record/attribute_methods.rb
|
89
107
|
- lib/active_record/attribute_methods/before_type_cast.rb
|
@@ -98,10 +116,14 @@ files:
|
|
98
116
|
- lib/active_record/autosave_association.rb
|
99
117
|
- lib/active_record/base.rb
|
100
118
|
- lib/active_record/callbacks.rb
|
119
|
+
- lib/active_record/coders/column_serializer.rb
|
101
120
|
- lib/active_record/coders/json.rb
|
102
121
|
- lib/active_record/coders/yaml_column.rb
|
103
122
|
- lib/active_record/connection_adapters.rb
|
123
|
+
- lib/active_record/connection_adapters/abstract/connection_handler.rb
|
104
124
|
- lib/active_record/connection_adapters/abstract/connection_pool.rb
|
125
|
+
- lib/active_record/connection_adapters/abstract/connection_pool/queue.rb
|
126
|
+
- lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb
|
105
127
|
- lib/active_record/connection_adapters/abstract/database_limits.rb
|
106
128
|
- lib/active_record/connection_adapters/abstract/database_statements.rb
|
107
129
|
- lib/active_record/connection_adapters/abstract/query_cache.rb
|
@@ -116,7 +138,6 @@ files:
|
|
116
138
|
- lib/active_record/connection_adapters/abstract_mysql_adapter.rb
|
117
139
|
- lib/active_record/connection_adapters/column.rb
|
118
140
|
- lib/active_record/connection_adapters/deduplicable.rb
|
119
|
-
- lib/active_record/connection_adapters/legacy_pool_manager.rb
|
120
141
|
- lib/active_record/connection_adapters/mysql/column.rb
|
121
142
|
- lib/active_record/connection_adapters/mysql/database_statements.rb
|
122
143
|
- lib/active_record/connection_adapters/mysql/explain_pretty_printer.rb
|
@@ -126,6 +147,7 @@ files:
|
|
126
147
|
- lib/active_record/connection_adapters/mysql/schema_dumper.rb
|
127
148
|
- lib/active_record/connection_adapters/mysql/schema_statements.rb
|
128
149
|
- lib/active_record/connection_adapters/mysql/type_metadata.rb
|
150
|
+
- lib/active_record/connection_adapters/mysql2/database_statements.rb
|
129
151
|
- lib/active_record/connection_adapters/mysql2_adapter.rb
|
130
152
|
- lib/active_record/connection_adapters/pool_config.rb
|
131
153
|
- lib/active_record/connection_adapters/pool_manager.rb
|
@@ -153,6 +175,8 @@ files:
|
|
153
175
|
- lib/active_record/connection_adapters/postgresql/oid/point.rb
|
154
176
|
- lib/active_record/connection_adapters/postgresql/oid/range.rb
|
155
177
|
- lib/active_record/connection_adapters/postgresql/oid/specialized_string.rb
|
178
|
+
- lib/active_record/connection_adapters/postgresql/oid/timestamp.rb
|
179
|
+
- lib/active_record/connection_adapters/postgresql/oid/timestamp_with_time_zone.rb
|
156
180
|
- lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb
|
157
181
|
- lib/active_record/connection_adapters/postgresql/oid/uuid.rb
|
158
182
|
- lib/active_record/connection_adapters/postgresql/oid/vector.rb
|
@@ -168,6 +192,7 @@ files:
|
|
168
192
|
- lib/active_record/connection_adapters/postgresql_adapter.rb
|
169
193
|
- lib/active_record/connection_adapters/schema_cache.rb
|
170
194
|
- lib/active_record/connection_adapters/sql_type_metadata.rb
|
195
|
+
- lib/active_record/connection_adapters/sqlite3/column.rb
|
171
196
|
- lib/active_record/connection_adapters/sqlite3/database_statements.rb
|
172
197
|
- lib/active_record/connection_adapters/sqlite3/explain_pretty_printer.rb
|
173
198
|
- lib/active_record/connection_adapters/sqlite3/quoting.rb
|
@@ -177,6 +202,8 @@ files:
|
|
177
202
|
- lib/active_record/connection_adapters/sqlite3/schema_statements.rb
|
178
203
|
- lib/active_record/connection_adapters/sqlite3_adapter.rb
|
179
204
|
- lib/active_record/connection_adapters/statement_pool.rb
|
205
|
+
- lib/active_record/connection_adapters/trilogy/database_statements.rb
|
206
|
+
- lib/active_record/connection_adapters/trilogy_adapter.rb
|
180
207
|
- lib/active_record/connection_handling.rb
|
181
208
|
- lib/active_record/core.rb
|
182
209
|
- lib/active_record/counter_cache.rb
|
@@ -186,8 +213,38 @@ files:
|
|
186
213
|
- lib/active_record/database_configurations/hash_config.rb
|
187
214
|
- lib/active_record/database_configurations/url_config.rb
|
188
215
|
- lib/active_record/delegated_type.rb
|
216
|
+
- lib/active_record/deprecator.rb
|
189
217
|
- lib/active_record/destroy_association_async_job.rb
|
218
|
+
- lib/active_record/disable_joins_association_relation.rb
|
190
219
|
- lib/active_record/dynamic_matchers.rb
|
220
|
+
- lib/active_record/encryption.rb
|
221
|
+
- lib/active_record/encryption/auto_filtered_parameters.rb
|
222
|
+
- lib/active_record/encryption/cipher.rb
|
223
|
+
- lib/active_record/encryption/cipher/aes256_gcm.rb
|
224
|
+
- lib/active_record/encryption/config.rb
|
225
|
+
- lib/active_record/encryption/configurable.rb
|
226
|
+
- lib/active_record/encryption/context.rb
|
227
|
+
- lib/active_record/encryption/contexts.rb
|
228
|
+
- lib/active_record/encryption/derived_secret_key_provider.rb
|
229
|
+
- lib/active_record/encryption/deterministic_key_provider.rb
|
230
|
+
- lib/active_record/encryption/encryptable_record.rb
|
231
|
+
- lib/active_record/encryption/encrypted_attribute_type.rb
|
232
|
+
- lib/active_record/encryption/encrypted_fixtures.rb
|
233
|
+
- lib/active_record/encryption/encrypting_only_encryptor.rb
|
234
|
+
- lib/active_record/encryption/encryptor.rb
|
235
|
+
- lib/active_record/encryption/envelope_encryption_key_provider.rb
|
236
|
+
- lib/active_record/encryption/errors.rb
|
237
|
+
- lib/active_record/encryption/extended_deterministic_queries.rb
|
238
|
+
- lib/active_record/encryption/extended_deterministic_uniqueness_validator.rb
|
239
|
+
- lib/active_record/encryption/key.rb
|
240
|
+
- lib/active_record/encryption/key_generator.rb
|
241
|
+
- lib/active_record/encryption/key_provider.rb
|
242
|
+
- lib/active_record/encryption/message.rb
|
243
|
+
- lib/active_record/encryption/message_serializer.rb
|
244
|
+
- lib/active_record/encryption/null_encryptor.rb
|
245
|
+
- lib/active_record/encryption/properties.rb
|
246
|
+
- lib/active_record/encryption/read_only_null_encryptor.rb
|
247
|
+
- lib/active_record/encryption/scheme.rb
|
191
248
|
- lib/active_record/enum.rb
|
192
249
|
- lib/active_record/errors.rb
|
193
250
|
- lib/active_record/explain.rb
|
@@ -199,6 +256,7 @@ files:
|
|
199
256
|
- lib/active_record/fixture_set/table_row.rb
|
200
257
|
- lib/active_record/fixture_set/table_rows.rb
|
201
258
|
- lib/active_record/fixtures.rb
|
259
|
+
- lib/active_record/future_result.rb
|
202
260
|
- lib/active_record/gem_version.rb
|
203
261
|
- lib/active_record/inheritance.rb
|
204
262
|
- lib/active_record/insert_all.rb
|
@@ -209,24 +267,34 @@ files:
|
|
209
267
|
- lib/active_record/locking/optimistic.rb
|
210
268
|
- lib/active_record/locking/pessimistic.rb
|
211
269
|
- lib/active_record/log_subscriber.rb
|
270
|
+
- lib/active_record/marshalling.rb
|
271
|
+
- lib/active_record/message_pack.rb
|
212
272
|
- lib/active_record/middleware/database_selector.rb
|
213
273
|
- lib/active_record/middleware/database_selector/resolver.rb
|
214
274
|
- lib/active_record/middleware/database_selector/resolver/session.rb
|
275
|
+
- lib/active_record/middleware/shard_selector.rb
|
215
276
|
- lib/active_record/migration.rb
|
216
277
|
- lib/active_record/migration/command_recorder.rb
|
217
278
|
- lib/active_record/migration/compatibility.rb
|
279
|
+
- lib/active_record/migration/default_strategy.rb
|
280
|
+
- lib/active_record/migration/execution_strategy.rb
|
218
281
|
- lib/active_record/migration/join_table.rb
|
282
|
+
- lib/active_record/migration/pending_migration_connection.rb
|
219
283
|
- lib/active_record/model_schema.rb
|
220
284
|
- lib/active_record/nested_attributes.rb
|
221
285
|
- lib/active_record/no_touching.rb
|
222
|
-
- lib/active_record/
|
286
|
+
- lib/active_record/normalization.rb
|
223
287
|
- lib/active_record/persistence.rb
|
288
|
+
- lib/active_record/promise.rb
|
224
289
|
- lib/active_record/query_cache.rb
|
290
|
+
- lib/active_record/query_logs.rb
|
291
|
+
- lib/active_record/query_logs_formatter.rb
|
225
292
|
- lib/active_record/querying.rb
|
226
293
|
- lib/active_record/railtie.rb
|
227
294
|
- lib/active_record/railties/console_sandbox.rb
|
228
295
|
- lib/active_record/railties/controller_runtime.rb
|
229
296
|
- lib/active_record/railties/databases.rake
|
297
|
+
- lib/active_record/railties/job_runtime.rb
|
230
298
|
- lib/active_record/readonly_attributes.rb
|
231
299
|
- lib/active_record/reflection.rb
|
232
300
|
- lib/active_record/relation.rb
|
@@ -258,6 +326,7 @@ files:
|
|
258
326
|
- lib/active_record/scoping.rb
|
259
327
|
- lib/active_record/scoping/default.rb
|
260
328
|
- lib/active_record/scoping/named.rb
|
329
|
+
- lib/active_record/secure_password.rb
|
261
330
|
- lib/active_record/secure_token.rb
|
262
331
|
- lib/active_record/serialization.rb
|
263
332
|
- lib/active_record/signed_id.rb
|
@@ -272,6 +341,7 @@ files:
|
|
272
341
|
- lib/active_record/test_databases.rb
|
273
342
|
- lib/active_record/test_fixtures.rb
|
274
343
|
- lib/active_record/timestamp.rb
|
344
|
+
- lib/active_record/token_for.rb
|
275
345
|
- lib/active_record/touch_later.rb
|
276
346
|
- lib/active_record/transactions.rb
|
277
347
|
- lib/active_record/translation.rb
|
@@ -312,6 +382,7 @@ files:
|
|
312
382
|
- lib/arel/errors.rb
|
313
383
|
- lib/arel/expressions.rb
|
314
384
|
- lib/arel/factory_methods.rb
|
385
|
+
- lib/arel/filter_predications.rb
|
315
386
|
- lib/arel/insert_manager.rb
|
316
387
|
- lib/arel/math.rb
|
317
388
|
- lib/arel/nodes.rb
|
@@ -319,15 +390,19 @@ files:
|
|
319
390
|
- lib/arel/nodes/ascending.rb
|
320
391
|
- lib/arel/nodes/binary.rb
|
321
392
|
- lib/arel/nodes/bind_param.rb
|
393
|
+
- lib/arel/nodes/bound_sql_literal.rb
|
322
394
|
- lib/arel/nodes/case.rb
|
323
395
|
- lib/arel/nodes/casted.rb
|
324
396
|
- lib/arel/nodes/comment.rb
|
325
397
|
- lib/arel/nodes/count.rb
|
398
|
+
- lib/arel/nodes/cte.rb
|
326
399
|
- lib/arel/nodes/delete_statement.rb
|
327
400
|
- lib/arel/nodes/descending.rb
|
328
401
|
- lib/arel/nodes/equality.rb
|
329
402
|
- lib/arel/nodes/extract.rb
|
330
403
|
- lib/arel/nodes/false.rb
|
404
|
+
- lib/arel/nodes/filter.rb
|
405
|
+
- lib/arel/nodes/fragments.rb
|
331
406
|
- lib/arel/nodes/full_outer_join.rb
|
332
407
|
- lib/arel/nodes/function.rb
|
333
408
|
- lib/arel/nodes/grouping.rb
|
@@ -337,6 +412,7 @@ files:
|
|
337
412
|
- lib/arel/nodes/inner_join.rb
|
338
413
|
- lib/arel/nodes/insert_statement.rb
|
339
414
|
- lib/arel/nodes/join_source.rb
|
415
|
+
- lib/arel/nodes/leading_join.rb
|
340
416
|
- lib/arel/nodes/matches.rb
|
341
417
|
- lib/arel/nodes/named_function.rb
|
342
418
|
- lib/arel/nodes/node.rb
|
@@ -375,27 +451,31 @@ files:
|
|
375
451
|
- lib/arel/visitors/visitor.rb
|
376
452
|
- lib/arel/window_predications.rb
|
377
453
|
- lib/rails/generators/active_record.rb
|
454
|
+
- lib/rails/generators/active_record/application_record/USAGE
|
378
455
|
- lib/rails/generators/active_record/application_record/application_record_generator.rb
|
379
456
|
- lib/rails/generators/active_record/application_record/templates/application_record.rb.tt
|
380
457
|
- lib/rails/generators/active_record/migration.rb
|
381
458
|
- lib/rails/generators/active_record/migration/migration_generator.rb
|
382
459
|
- lib/rails/generators/active_record/migration/templates/create_table_migration.rb.tt
|
383
460
|
- lib/rails/generators/active_record/migration/templates/migration.rb.tt
|
461
|
+
- lib/rails/generators/active_record/model/USAGE
|
384
462
|
- lib/rails/generators/active_record/model/model_generator.rb
|
385
463
|
- lib/rails/generators/active_record/model/templates/abstract_base_class.rb.tt
|
386
464
|
- lib/rails/generators/active_record/model/templates/model.rb.tt
|
387
465
|
- lib/rails/generators/active_record/model/templates/module.rb.tt
|
466
|
+
- lib/rails/generators/active_record/multi_db/multi_db_generator.rb
|
467
|
+
- lib/rails/generators/active_record/multi_db/templates/multi_db.rb.tt
|
388
468
|
homepage: https://rubyonrails.org
|
389
469
|
licenses:
|
390
470
|
- MIT
|
391
471
|
metadata:
|
392
472
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
393
|
-
changelog_uri: https://github.com/rails/rails/blob/
|
394
|
-
documentation_uri: https://api.rubyonrails.org/
|
473
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.5/activerecord/CHANGELOG.md
|
474
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.5/
|
395
475
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
396
|
-
source_code_uri: https://github.com/rails/rails/tree/
|
476
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.5/activerecord
|
397
477
|
rubygems_mfa_required: 'true'
|
398
|
-
post_install_message:
|
478
|
+
post_install_message:
|
399
479
|
rdoc_options:
|
400
480
|
- "--main"
|
401
481
|
- README.rdoc
|
@@ -405,15 +485,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
405
485
|
requirements:
|
406
486
|
- - ">="
|
407
487
|
- !ruby/object:Gem::Version
|
408
|
-
version: 2.
|
488
|
+
version: 2.7.0
|
409
489
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
410
490
|
requirements:
|
411
491
|
- - ">="
|
412
492
|
- !ruby/object:Gem::Version
|
413
493
|
version: '0'
|
414
494
|
requirements: []
|
415
|
-
rubygems_version: 3.
|
416
|
-
signing_key:
|
495
|
+
rubygems_version: 3.5.16
|
496
|
+
signing_key:
|
417
497
|
specification_version: 4
|
418
498
|
summary: Object-relational mapper framework (part of Rails).
|
419
499
|
test_files: []
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
module ConnectionAdapters
|
5
|
-
class LegacyPoolManager # :nodoc:
|
6
|
-
def initialize
|
7
|
-
@name_to_pool_config = {}
|
8
|
-
end
|
9
|
-
|
10
|
-
def shard_names
|
11
|
-
@name_to_pool_config.keys
|
12
|
-
end
|
13
|
-
|
14
|
-
def pool_configs(_ = nil)
|
15
|
-
@name_to_pool_config.values
|
16
|
-
end
|
17
|
-
|
18
|
-
def remove_pool_config(_, shard)
|
19
|
-
@name_to_pool_config.delete(shard)
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_pool_config(_, shard)
|
23
|
-
@name_to_pool_config[shard]
|
24
|
-
end
|
25
|
-
|
26
|
-
def set_pool_config(role, shard, pool_config)
|
27
|
-
if pool_config
|
28
|
-
@name_to_pool_config[shard] = pool_config
|
29
|
-
else
|
30
|
-
raise ArgumentError, "The `pool_config` for the :#{role} role and :#{shard} shard was `nil`. Please check your configuration. If you want your writing role to be something other than `:writing` set `config.active_record.writing_role` in your application configuration. The same setting should be applied for the `reading_role` if applicable."
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|