ActiveRecord::DatabaseConfigurations::HashConfig (original) (raw)
Active Record Database Hash Config
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.
Methods
A
C
D
H
I
L
M
N
P
Q
R
S
Attributes
Class Public methods
new(env_name, name, configuration_hash)Link
Initialize a new HashConfig object
Parameters
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”.- configuration_hash - The config hash. This is the hash that contains the database adapter, name, and other important information for database connections.
def initialize(env_name, name, configuration_hash) super(env_name, name) @configuration_hash = configuration_hash.symbolize_keys.freeze end
Instance Public methods
adapter()Link
def adapter configuration_hash[:adapter]&.to_s end
checkout_timeout()Link
def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end
database()Link
def database configuration_hash[:database] end
default_schema_cache_path(db_dir = "db")Link
def default_schema_cache_path(db_dir = "db") if primary? File.join(db_dir, "schema_cache.yml") else File.join(db_dir, "#{name}_schema_cache.yml") end end
idle_timeout()Link
def idle_timeout timeout = configuration_hash.fetch(:idle_timeout, 300).to_f timeout if timeout > 0 end
lazy_schema_cache_path()Link
def lazy_schema_cache_path schema_cache_path || default_schema_cache_path end
max_threads()Link
def max_threads (configuration_hash[:max_threads] || pool).to_i end
migrations_paths()Link
The migrations paths for a database configuration. If the migrations_paths key is present in the config, migrations_paths will return its value.
def migrations_paths configuration_hash[:migrations_paths] end
min_threads()Link
def min_threads (configuration_hash[:min_threads] || 0).to_i end
pool()Link
def pool (configuration_hash[:pool] || 5).to_i end
query_cache()Link
def query_cache configuration_hash[:query_cache] end
reaping_frequency()Link
reaping_frequency is configurable mostly for historical reasons, but it could also be useful if someone wants a very low idle_timeout.
def reaping_frequency configuration_hash.fetch(:reaping_frequency, 60)&.to_f end
replica?()Link
Determines whether a database configuration is for a replica / readonly connection. If the replica
key is present in the config, replica?
will return true
.
def replica? configuration_hash[:replica] end
schema_cache_path()Link
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.
def schema_cache_path configuration_hash[:schema_cache_path] end
schema_dump(format = ActiveRecord.schema_format)Link
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.
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
seeds?()Link
Determines whether the db:prepare task should seed the database from db/seeds.rb.
If the seeds
key is present in the config, seeds?
will return its value. Otherwise, it will return true
for the primary database and false
for all other configs.
def seeds? configuration_hash.fetch(:seeds, primary?) end