def configs_for(env_name: nil, spec_name: nil, include_replicas: false)
      configs = env_with_configs(env_name)

      unless include_replicas
        configs = configs.select do |db_config|
          !db_config.replica?
        end
      end

      if spec_name
        configs.find do |db_config|
          db_config.spec_name == spec_name
        end
      else
        configs
      end
    end
def configs_for(env_name: nil, spec_name: nil, include_replicas: false)
      configs = env_with_configs(env_name)

      unless include_replicas
        configs = configs.select do |db_config|
          !db_config.replica?
        end
      end

      if spec_name
        configs.find do |db_config|
          db_config.spec_name == spec_name
        end
      else
        configs
      end
    end
Collects the configs for the environment and optionally the specification
 name passed in. To include replica configurations pass <tt>include_replicas: true</tt>.

 If a spec name is provided a single DatabaseConfig object will be
 returned, otherwise an array of DatabaseConfig objects will be
 returned that corresponds with the environment and type requested.

 ==== Options

 * <tt>env_name:</tt> The environment name. Defaults to +nil+ which will collect
   configs for all environments.
 * <tt>spec_name:</tt> The specification name (i.e. primary, animals, etc.). Defaults
   to +nil+.
 * <tt>include_replicas:</tt> Determines whether to include replicas in
   the returned list. Most of the time we're only iterating over the write
   connection (i.e. migrations don't need to run for the write and read connection).
   Defaults to +false+.