Rails 3.1 Anwendung auf 3.2 aktualisieren

Rails 3.2 ist nun bereits seit einigen Wochen draußen und mit Rails 3.2.2 steht auch schon das zweite Update bereit. Zeit also, um meine Anwendungen auf die neue Version zu hieven.

Das Update gestaltet sich recht einfach. Als erstes muss das Gemfile mit folgenden Werten angepasst werden:

  • rails = 3.2.2
  • sass-rails ~> 3.2.3
  • coffee-rails ~> 3.2.1
  • uglifier >= 1.0.3

Danach bringt bundle update die installierten Gems auf den neuen Stand.

Als nächstes müssen in den Konfigurationsdateien der Entwicklungs- und Testumgebung das in Rails 3.2 neue Active Record Logging konfiguriert werden:

config/environments/development.rb:

# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict

# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
config.active_record.auto_explain_threshold_in_seconds = 0.5

config/environments/test.rb:

# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict

Die Änderungen genügen eigentlich. Ich habe zusätzlich noch in die config/enviroments/production.rb folgende Kommentare hinzugefügt bzw. geändert, die ich aus einem frisch angelegtem Rails 3.2 Projekt kopiert habe:

# Prepend all log lines with the following tags
# config.log_tags = [ :subdomain, :uuid ]

# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)

# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
# config.active_record.auto_explain_threshold_in_seconds = 0.5

Das war es auch schon. Zum Abschluss wird die Anwendung mit der neuen Rails Version per bundle exec rake test auf Fehler geprüft.

Beim Testlauf sieht man unter Umständen einige Deprecation Warnings, die besagen, dass Plugins im Rails 2.3 Stil im vendor/plugins Verzeichnis vorhanden sind. Diese werden ab Rails 4 nicht mehr unterstützt. Als Lösung wird der Einsatz von passenden GEMs empfohlen. Sind die nicht verfügbar, können die Plugins als Notlösung auch noch das lib-Verzeichnis kopiert werden. Wie das geht und was dazu eingestellt werden muss, steht in den Deprecation Warnings.

Thats it. Die meisten Infos und alle Neuerungen in Rails 3.2 finden sich auch nochmal in den Release Notes.

flattr this!

Kommentar verfassen