#primary? ⇒ Boolean
(readonly)
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 129
def primary? # :nodoc: Base.configurations.primary?(name) end
123456789_123456789_123456789_123456789_123456789_
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
DatabaseConfig
|
|
Instance Chain:
self,
DatabaseConfig
|
|
Inherits: |
ActiveRecord::DatabaseConfigurations::DatabaseConfig
|
Defined in: | activerecord/lib/active_record/database_configurations/hash_config.rb |
A HashConfig
object is created for each database configuration entry that is created from a hash.
A hash config:
{ "development" => { "database" => "db_name" } }
Becomes:
#<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
@env_name="development", @name="primary", @config={database: "db_name"}>
See ::ActiveRecord::DatabaseConfigurations
for more info.
Initialize a new HashConfig
object.
DatabaseConfig
- InheritedDetermines whether a database configuration is for a replica / readonly connection.
DatabaseConfig
- InheritedThe migrations paths for a database configuration.
reaping_frequency
is configurable mostly for historical reasons, but it could also be useful if someone wants a very low #idle_timeout.
The path to the schema cache dump file for a database.
Determines whether to dump the schema/structure files and the filename that should be used.
DatabaseConfig
- InheritedHashConfig
Initialize a new HashConfig
object
:env_name
- The Rails environment, i.e. “development”.
:name
- The db config name. In a standard two-tier database configuration this will default to “primary”. In a multiple database three-tier database configuration this corresponds to the name used in the second tier, for example “primary_readonly”.
:config
- The config hash. This is the hash that contains the database adapter, name, and other important information for database connections.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 36
def initialize(env_name, name, configuration_hash) super(env_name, name) @configuration_hash = configuration_hash.symbolize_keys.freeze end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 67
def _database=(database) # :nodoc: @configuration_hash = configuration_hash.merge(database: database).freeze end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 21
attr_reader :configuration_hash
Boolean
(readonly)
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 153
def database_tasks? # :nodoc: !replica? && !!configuration_hash.fetch(:database_tasks, true) end
Boolean
(readonly)
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 129
def primary? # :nodoc: Base.configurations.primary?(name) end
Boolean
(readonly)
Determines whether a database configuration is for a replica / readonly connection. If the replica
key is present in the config, replica?
will return true
.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 44
def replica? configuration_hash[:replica] end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 106
def adapter configuration_hash[:adapter] end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 91
def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 63
def database configuration_hash[:database] end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 55
def host configuration_hash[:host] end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 101
def idle_timeout timeout = configuration_hash.fetch(:idle_timeout, 300).to_f timeout if timeout > 0 end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 125
def lazy_schema_cache_path schema_cache_path || default_schema_cache_path end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 87
def max_queue max_threads * 4 end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 79
def max_threads (configuration_hash[:max_threads] || pool).to_i end
The migrations paths for a database configuration. If the migrations_paths
key is present in the config, migrations_paths
will return its value.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 51
def migrations_paths configuration_hash[:migrations_paths] end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 75
def min_threads (configuration_hash[:min_threads] || 0).to_i end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 71
def pool (configuration_hash[:pool] || 5).to_i end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 83
def query_cache configuration_hash[:query_cache] end
reaping_frequency
is configurable mostly for historical reasons, but it could also be useful if someone wants a very low #idle_timeout.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 97
def reaping_frequency configuration_hash.fetch(:reaping_frequency, 60)&.to_f end
The path to the schema cache dump file for a database. If omitted, the filename will be read from ENV or a default will be derived.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 113
def schema_cache_path configuration_hash[:schema_cache_path] end
Determines whether to dump the schema/structure files and the filename that should be used.
If configuration_hash[:schema_dump]
is set to false
or nil
the schema will not be dumped.
If the config option is set that will be used. Otherwise Rails will generate the filename from the database config name.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 141
def schema_dump(format = ActiveRecord.schema_format) if configuration_hash.key?(:schema_dump) if config = configuration_hash[:schema_dump] config end elsif primary? schema_file_type(format) else "#{name}_#{schema_file_type(format)}" end end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 158
def schema_file_type(format) case format when :ruby "schema.rb" when :sql "structure.sql" end end
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 59
def socket # :nodoc: configuration_hash[:socket] end