    # File lib/active_record/connection_adapters/abstract/connection_specification.rb, line 191
        def self.establish_connection(spec = nil)
          case spec
            when nil
              raise AdapterNotSpecified unless defined? RAILS_ENV
              establish_connection(RAILS_ENV)
            when ConnectionSpecification
              clear_active_connection_name
              @active_connection_name = name
              @@defined_connections[name] = spec
            when Symbol, String
              if configuration = configurations[spec.to_s]
                establish_connection(configuration)
              else
                raise AdapterNotSpecified, "#{spec} database is not configured"
              end
            else
              spec = spec.symbolize_keys
              unless spec.key?(:adapter) then raise AdapterNotSpecified, "database configuration does not specify adapter" end
              adapter_method = "#{spec[:adapter]}_connection"
              unless respond_to?(adapter_method) then raise AdapterNotFound, "database configuration specifies nonexistent #{spec[:adapter]} adapter" end
              remove_connection
              establish_connection(ConnectionSpecification.new(spec, adapter_method))
          end
        end