rails/activerecord/test/cases
Katrina Owen 2c2ff8228e
Allow schema cache path to be defined in the config file
This updates the database tasks for dumping the Active Record schema cache as
well as clearing the schema cache file, allowing the path to be defined in the
database configuration YAML file.

As before, the value can also be defined in an ENV variable, though this would
not work for a multi-db application. If the value is specified neither in the
DB config, nor in the ENV, then the path will continue to be derived from the
DB config spec_name.

Note that in order to make this change cleaner I also moved a bit of logic
out of a rake task and into the DatabaseTasks class, for symmetry.

We have two rake tasks for the schema cache:

    $ rake db:schema:cache:dump
    $ rake db:schema:cache:clear

The cache:dump task was implemented in DatabaseTasks, but the
cache:clear one was not.

I also added some tests for the behavior that I was changing, since some of
the code paths weren't tested.
2020-01-23 08:18:23 -07:00
..
adapters Fix typo 2020-01-20 01:35:12 +09:00
arel Allow #nulls_first and #nulls_last in PostgreSQL 2019-12-31 15:59:59 -05:00
associations *_for_alter methods should also takes keyword arguments 2020-01-20 09:15:29 +09:00
attribute_methods Add AR::Base.base_class? predicate 2018-04-02 14:34:32 +03:00
coders Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
connection_adapters Deprecate #remove_connection in favor of #remove_connection_pool 2020-01-21 16:49:20 -05:00
database_configurations Move name key on configuration hash into DatabaseConfig 2019-12-17 15:59:49 -05:00
fixture_set Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
migration *_for_alter methods should also takes keyword arguments 2020-01-20 09:15:29 +09:00
relation Introducing the where.missing query method. 2020-01-11 09:14:25 -05:00
scoping Association loading isn't to be affected by null relation scoping 2019-04-06 11:37:34 +09:00
tasks Allow schema cache path to be defined in the config file 2020-01-23 08:18:23 -07:00
type Fix year value when casting a multiparameter time hash 2019-01-21 09:23:12 +00:00
validations Add scale support to ActiveRecord::Validations::NumericalityValidator 2020-01-13 11:00:22 -05:00
adapter_test.rb Deprecate and replace #default_hash and #[] 2020-01-17 16:08:12 -05:00
aggregations_test.rb No need to handle if FrozenError is available 2018-12-23 13:26:20 +00:00
annotate_test.rb Should Regexp.escape quoted table name in regex 2019-07-08 09:32:30 +09:00
ar_schema_test.rb Move SchemaMigration to migration_context 2019-06-14 11:15:08 -04:00
associations_test.rb Add Relation#annotate for SQL commenting 2019-03-21 20:30:56 -07:00
attribute_decorators_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
attribute_methods_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
attributes_test.rb Should find last created record 2019-06-15 08:19:31 +09:00
autosave_association_test.rb Only assign @new_record_before_save once in autosave_association 2020-01-06 12:57:33 -05:00
base_test.rb Better double checked locking in load_schema 2019-09-24 18:00:05 +02:00
batches_test.rb Merge pull request #38038 from Shopify/activerecord-ruby-2.7-warnings-6-0-stable-batch-2 2019-12-20 19:43:49 +09:00
binary_test.rb Enable Performance/UnfreezeString cop 2018-09-23 08:56:55 +09:00
bind_parameter_test.rb Address test_statement_cache_with_in_clause failure due to nondeterministic sort order 2019-06-20 15:07:58 +00:00
boolean_test.rb Type cast falsy boolean symbols on boolean attribute as false 2019-03-30 04:18:25 +09:00
cache_key_test.rb PostgreSQL: Use native timestamp decoders of pg-1.1 2019-01-26 20:30:43 +01:00
calculations_test.rb Fix random CI failure due to non-deterministic sorting order 2020-01-14 08:44:05 +09:00
callbacks_test.rb Don't call after_commit callbacks despite a record isn't saved 2019-04-12 09:19:03 +09:00
clone_test.rb Fix CustomCops/AssertNot to allow it to have failure message 2018-05-13 11:32:47 +09:00
collection_cache_key_test.rb Merge pull request #38099 from alipman88/avoid_unecessary_query_if_cache_versioning_enabled 2020-01-06 08:52:41 -05:00
column_alias_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
column_definition_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
comment_test.rb Fix invalid schema dump when primary key column has a comment 2019-06-03 08:35:36 -03:00
connection_management_test.rb Change the empty block style to have space inside of the block 2018-09-25 13:19:35 -04:00
connection_pool_test.rb Don't allow mutations on configuration_hash 2019-12-19 09:15:24 -05:00
core_test.rb Update for Time#inspect 2019-09-21 16:57:39 +09:00
counter_cache_test.rb Enable Lint/UselessAssignment cop to avoid unused variable warnings (#34904) 2019-01-09 18:09:01 +09:00
custom_locking_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
database_configurations_test.rb Deprecate and replace #default_hash and #[] 2020-01-17 16:08:12 -05:00
database_selector_test.rb Ensure the reading connection always raises if we try to write 2020-01-09 18:34:28 -05:00
database_statements_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
date_test.rb Rails DateTime type is mapped to Oracle TIMESTAMP since Rails 5.0 2019-03-03 04:55:17 +00:00
date_time_precision_test.rb Raise ArgumentError for invalid :limit and :precision like as other options 2019-04-07 16:14:42 +09:00
date_time_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
defaults_test.rb Deprecate #remove_connection in favor of #remove_connection_pool 2020-01-21 16:49:20 -05:00
dirty_test.rb Serialize symbols to strings in ImmutableString serialize method 2019-08-10 23:37:37 +01:00
disconnected_test.rb Deprecate connection_config 2019-12-17 12:20:37 -05:00
dup_test.rb Fix CustomCops/AssertNot to allow it to have failure message 2018-05-13 11:32:47 +09:00
enum_test.rb Add test case about assigning nil in enum 2019-12-27 13:58:54 +09:00
errors_test.rb Enable Style/RedundantBegin cop to avoid newly adding redundant begin block 2018-12-21 06:12:42 +09:00
explain_subscriber_test.rb Permit list usage cleanup and clearer documentation 2018-08-27 09:51:46 -04:00
explain_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
filter_attributes_test.rb Fix Active Record attribute filtering test on Ruby 2.7 2019-12-19 16:16:13 +01:00
finder_respond_to_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
finder_test.rb Additionally order by primary key if implicit_order_column is not uniq 2019-11-03 16:01:18 +01:00
fixtures_test.rb Deprecate "primary" as a connection_specification_name for ActiveRecord::Base 2020-01-08 16:49:41 -05:00
forbidden_attributes_protection_test.rb Remove duplicated protected params definitions 2019-02-24 19:50:53 +09:00
habtm_destroy_order_test.rb Enable Style/RedundantBegin cop to avoid newly adding redundant begin block 2018-12-21 06:12:42 +09:00
helper.rb Instantiate ConnectionPool with a DatabaseConfig rather than a ConnectionSpecification 2019-09-24 15:12:22 +02:00
hot_compatibility_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
i18n_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
inheritance_test.rb Should Regexp.escape quoted table name in regex 2019-07-08 09:32:30 +09:00
insert_all_test.rb include primary key in insert_all conflict target if specified in unique_by 2019-10-03 08:32:37 -05:00
instrumentation_test.rb Include connection in cached query notifications 2019-10-01 00:35:32 +01:00
integration_test.rb Remove ability to specify a timestamp name for #cache_key 2019-01-17 16:08:32 -05:00
invalid_connection_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
invertible_migration_test.rb make AR::ConnectionAdapers::Table#remove reversible 2019-07-03 15:05:21 +09:00
json_attribute_test.rb Use :string instead of :text for JsonAttributeTest 2017-12-06 08:42:51 +09:00
json_serialization_test.rb Merge pull request #35891 from Shopify/schema-cache-deduplication 2019-06-19 13:04:32 +02:00
json_shared_test_cases.rb Deprecate update_attributes and update_attributes! 2018-02-17 13:58:54 -08:00
locking_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
log_subscriber_test.rb Omit BEGIN/COMMIT statements for empty transactions 2018-08-13 16:51:54 +01:00
migration_test.rb Accept columns passed with options in remove_index 2019-09-10 22:21:20 +01:00
migrator_test.rb Move SchemaMigration to migration_context 2019-06-14 11:15:08 -04:00
mixin_test.rb Merge pull request #29860 from georgeclaghorn/travel-back-automatically 2017-07-24 01:01:25 -04:00
modules_test.rb Fix CustomCops/AssertNot to allow it to have failure message 2018-05-13 11:32:47 +09:00
multi_db_migrator_test.rb Move SchemaMigration to migration_context 2019-06-14 11:15:08 -04:00
multiparameter_attributes_test.rb Autocorrect refute RuboCop violations 2018-04-03 22:35:49 -04:00
multiple_db_test.rb Deprecate "primary" as a connection_specification_name for ActiveRecord::Base 2020-01-08 16:49:41 -05:00
nested_attributes_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
nested_attributes_with_callbacks_test.rb Use assert_predicate and assert_not_predicate 2018-01-25 23:32:59 -05:00
null_relation_test.rb Call load_schema before assert_no_queries 2018-10-10 09:50:22 +09:00
numeric_data_test.rb Ensure casting by decimal attribute when querying 2018-11-12 03:39:28 +09:00
persistence_test.rb Assert deprecation 2019-03-31 22:59:12 +08:00
pooled_connections_test.rb Deprecate #remove_connection in favor of #remove_connection_pool 2020-01-21 16:49:20 -05:00
prepared_statement_status_test.rb Fix test failure if prepared_statements is flipped 2020-01-03 18:51:15 +09:00
primary_keys_test.rb PERF: 20% faster pk attribute access 2019-04-22 14:41:00 +09:00
query_cache_test.rb Deprecate #remove_connection in favor of #remove_connection_pool 2020-01-21 16:49:20 -05:00
quoting_test.rb Normalize time value not to be affected by summer time 2018-07-25 09:46:39 +09:00
readonly_test.rb Replace assert ! with assert_not 2018-04-19 08:11:33 -04:00
reaper_test.rb Don't allow mutations on configuration_hash 2019-12-19 09:15:24 -05:00
reflection_test.rb Silence method redefined warnings 2019-09-17 15:53:36 +09:00
relation_test.rb Use assert_queries since we are only checking for the count 2019-09-30 22:38:00 -03:00
relations_test.rb Fix unscoped grouped where 2019-11-21 17:27:26 -05:00
reload_models_test.rb Merge remote-tracking branch 'origin/master' into unlock-minitest 2017-08-01 17:34:14 -04:00
reserved_word_test.rb Use assert_predicate and assert_not_predicate 2018-01-25 23:32:59 -05:00
result_test.rb Deprecate ActiveRecord::Result#to_hash in favor of #to_a 2018-09-18 16:40:10 -04:00
sanitize_test.rb Quote empty ranges like other empty enumerables 2019-03-07 19:22:29 -05:00
schema_dumper_test.rb Revert schema dumper to use strings rather than integers 2019-06-20 14:00:42 +02:00
schema_loading_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00
secure_token_test.rb Allow token length configuration for has_secure_token method 2019-04-09 17:25:50 -04:00
serialization_test.rb Replace assert ! with assert_not 2018-04-19 08:11:33 -04:00
serialized_attribute_test.rb define_attribute takes keyword arguments 2019-09-15 03:05:52 +09:00
statement_cache_test.rb activerecord: Fix statement cache for strictly cast attributes 2019-01-23 14:49:42 -05:00
statement_invalid_test.rb Redact SQL in errors 2018-11-22 13:53:23 -05:00
store_test.rb Add saved changes helpers for store accessors 2019-03-25 18:53:07 -04:00
suppressor_test.rb Change the empty block style to have space inside of the block 2018-09-25 13:19:35 -04:00
test_case.rb Check that entire collection has been loaded before short circuiting 2019-11-19 15:32:36 -06:00
test_databases_test.rb Restore previous behavior of parallel test databases 2020-01-07 16:03:00 -05:00
test_fixtures_test.rb Enable Layout/ClosingHeredocIndentation cop 2019-11-24 09:44:32 +09:00
time_precision_test.rb Raise ArgumentError for invalid :limit and :precision like as other options 2019-04-07 16:14:42 +09:00
timestamp_test.rb Fix dirty tracking for touch 2019-04-15 13:53:58 +09:00
touch_later_test.rb Fix typo for touch later test description. laster -> later 2019-04-05 19:33:19 +05:30
transaction_callbacks_test.rb Clear callback triggers when transaction completes 2019-12-27 01:33:22 +00:00
transaction_isolation_test.rb Don't run concurrent transaction test on sqlite3: 2019-12-17 17:15:23 +01:00
transactions_test.rb Don't run concurrent transaction test on sqlite3: 2019-12-17 17:15:23 +01:00
type_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
types_test.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
unconnected_test.rb Deprecate "primary" as a connection_specification_name for ActiveRecord::Base 2020-01-08 16:49:41 -05:00
unsafe_raw_sql_test.rb Allow column name with function (e.g. length(title)) as safe SQL string 2019-06-10 07:36:58 +09:00
validations_repair_helper.rb Use frozen-string-literal in ActiveRecord 2017-07-19 22:27:07 +03:00
validations_test.rb Add validation to subclass in tests to avoid polluting parent class 2019-04-13 22:20:56 +09:00
view_test.rb Bump the minimum version of PostgreSQL to 9.3 2018-11-25 13:13:08 +00:00
yaml_serialization_test.rb Enable Layout/EmptyLinesAroundAccessModifier cop 2019-06-13 12:00:45 +09:00