37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
if Rails::VERSION::MAJOR >= 7
|
|
raise "Remove `#{__FILE__}`. This is backport of `database_tasks:` Rails 7.x feature."
|
|
end
|
|
|
|
# This backports `database_tasks:` feature to skip running migrations for some databases
|
|
# PR: https://github.com/rails/rails/pull/42794/files
|
|
|
|
module DatabaseTasks
|
|
module ActiveRecordDatabaseConfigurations
|
|
def configs_for(env_name: nil, name: nil, include_replicas: false)
|
|
configs = super
|
|
|
|
unless include_replicas
|
|
if name
|
|
configs = nil unless configs&.database_tasks?
|
|
else
|
|
configs = configs.select do |db_config|
|
|
db_config.database_tasks?
|
|
end
|
|
end
|
|
end
|
|
|
|
configs
|
|
end
|
|
end
|
|
|
|
module ActiveRecordDatabaseConfigurationsHashConfig
|
|
def database_tasks? # :nodoc:
|
|
!replica? && !!configuration_hash.fetch(:database_tasks, true)
|
|
end
|
|
end
|
|
end
|
|
|
|
ActiveRecord::DatabaseConfigurations.prepend(DatabaseTasks::ActiveRecordDatabaseConfigurations)
|
|
ActiveRecord::DatabaseConfigurations::HashConfig.prepend(DatabaseTasks::ActiveRecordDatabaseConfigurationsHashConfig)
|