Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum versucht Rails, eine Verbindung zu MySQL herzustellen?

Wenn ActiveRecord Teil der Anwendung ist, versucht es, beim Start eine Verbindung zur Datenbank herzustellen. Wenn keine Verbindung hergestellt werden kann, wird die Anwendung nicht gestartet.

Das Problem ist hier:

require 'rails/all'

Diese Linie umfasst alle "üblichen" Rails-Komponenten, darunter auch ActiveRecord. Wenn Sie zu seiner Definition gehen, sollte es so aussehen (für Schienen 3.2):

require "rails"

%w(
  active_record
  action_controller
  action_mailer
  active_resource
  rails/test_unit
  sprockets
).each do |framework|
  begin
    require "#{framework}/railtie"
  rescue LoadError
  end
end

Nehmen Sie diesen Code, entfernen Sie die Zeile active_record und setzen Sie sie stattdessen auf rails/all Linie. Jetzt ist ActiveRecord nicht enthalten und Ihre Anwendung wird lautstark fehlschlagen, wenn sie ActiveRecord-Referenzen im Code sieht, wie hier:

config.active_record.mass_assignment_sanitizer = :strict

Auch diese müssen Sie entfernen. Sie müssen database.yml nicht löschen, sollten es aber wahrscheinlich, da es jetzt keine Bedeutung mehr hat.