Atualizando rails do 2.x para 3.x

2,288 views
2,230 views

Published on

Palestra RS On Rails 2012-09-15 - Atualizando aplicações Rails 2.x para 3.x

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,288
On SlideShare
0
From Embeds
0
Number of Embeds
1,474
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Atualizando rails do 2.x para 3.x

  1. 1. Atualizando do Rails 2.x para 3.2 Rodrigo Urubatanhttp://www.urubatan.com.br @urubatan
  2. 2. Urubatan Rodrigo Urubatan (@urubatan) trabalha comdesenvolvimento de software desde 1997. Jádesenvolveu sistemas em uma gama delinguagens e ambientes, incluindo Delphi, C,C++, PHP, ASP, ColdFusion, Assembly,Leather, Ruby e Java. Atualmente trabalha naGetNet, utilizando principalmente Java, Oraclee Ruby, e já ministrou cursos e palestras emdiversos eventos pelo Brasil. Autor do livroRuby On Rails: Desenvolvimento Fácil eRápido de Aplicações Web.http://www.urubatan.com.br @urubatan
  3. 3. Tem certeza disto? • Vale a pena atualizar? o Por que não re-escrever? o Algumas vezes é melhro re-escrever tudo! • Já pensou em todos os possíveis problemas? • Usa muitos plugins? • Muita coisa vendorizada que não existe mais online?http://www.urubatan.com.br @urubatan
  4. 4. Por onde começar? • script/plugin install git://github.com/rails/rails_upgrade.git • rake rails:upgrade:check • rake rails:upgrade:backup • rake rails:upgrade:routes • rake rails:upgrade:gems • rake rails:upgrade:configurationhttp://www.urubatan.com.br @urubatan
  5. 5. Check • rake rails:upgrade:check • (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts) • Old router API • The router API has totally changed. • More information: http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/ • The culprits: • - config/routes.$ rake rails:upgrade:check • (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts) • Old router API • The router API has totally changed. • More information: http://yehudakatz.com/2009/12/26/the-rails-3-router-rack-it-up/ • The culprits: • rb • - config/routes.rbhttp://www.urubatan.com.br @urubatan
  6. 6. Backup• rake rails:upgrade:backup• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)• DEPRECATION WARNING: Rake tasks in vendor/plugins/hoptoad_notifier/tasks are deprecated. Use lib/tasks instead. (called from /Library/Ruby/Gems/1.8/gems/rails-2.3.8/l$ rake rails:upgrade:backup• (in /Users/eifion/rails/apps_for_asciicasts/ep225/railscasts)• ib/tasks/rails.rb:10)• * backing up .gitignore to .gitignore.rails2• * backing up app/controllers/application_controller.rb to app/controllers/application_controller.rb.rails2• * backing up app/helpers/application_helper.rb to app/helpers/application_helper.DEPRECATION WARNING: Rake tasks in vendor/plugins/hoptoad_notifier/tasks are deprecated. Use lib/tasks instead. (called from /Library/Ruby/Gems/1.8/gems/rails- 2.3.8/lib/tasks/rails.rb:10)• * backing up .gitignore to .gitignore.rails2• * backing up app/controllers/application_controller.rb to app/controllers/application_controller.rb.rails2• rb.rails2• * backing up config/routes.rb to config/routes.rb.rails2• * backing up config/environment.rb to config/environment.rb.rails2• * backing up config/environments/development.rb to config/environments/development.rb.rails2• * backing up config/environme* backing up app/helpers/application_helper.rb to app/helpers/application_helper.rb.rails2• * backing up config/routes.rb to config/routes.rb.rails2• * backing up config/environment.rb to config/environment.rb.rails2• * backing up config/environments/development.rb to config/environments/development.rb.rails2• nts/production.rb to config/environments/production.rb.rails2• * backing up config/database.yml to config/database.yml.rails2http://www.urubatan.com.br @urubatan
  7. 7. Welcome to hell!http://www.urubatan.com.br @urubatan
  8. 8. returningo método returning não existe mais, mas ele é equivalente ao Object.tap do Ruby 1.9class Object def returning(obj) yield obj obj endendhttp://www.urubatan.com.br @urubatan
  9. 9. _on_ mudou e sumiu!validate_on_createvalidate_on_update mudaram para: validate ..., :on => :create|:updatebefore_validation_on_createbefore_validation_on_update mesma lógicahttp://www.urubatan.com.br @urubatan
  10. 10. with(out)_callbacks a implementação de callbacks mudou totalmente, não usa mais o mecanismo de alias_method_chainhttp://www.urubatan.com.br @urubatan
  11. 11. Plugins atualizados? Gems?uma aplicação cheia de coisas vendorizadas podia facilitar o deployment quando não existia bundler, mas hoje se torna um pesadelo ...http://www.urubatan.com.br @urubatan
  12. 12. no such method explain?se atualizou a app e esta recebendo o erro dizendo que não existe explain no adapter do mysql, mude o gemfile e o databases.yml para usar o mysql2http://www.urubatan.com.br @urubatan
  13. 13. Too much magick?Pivotal user plugin?Plugins que fazem muitas coisasPlugins e gems com muito monkey patchPlugins com hooks no rails, podem ser difíceis de atualizarhttp://www.urubatan.com.br @urubatan
  14. 14. HelpersVocê tera que re-escrever todos os helpers e adicionar os métodos:.html_safe ou rawpara que não seja impresso apenas código HTMLhttp://www.urubatan.com.br @urubatan
  15. 15. Abominaçõesm = mock(Class)def m.execute...endm.should_receive(:execute)http://www.urubatan.com.br @urubatan
  16. 16. O que todos já sabem?! • engines • rails confighttp://www.urubatan.com.br @urubatan
  17. 17. Perguntas!http://www.urubatan.com.br @urubatan
  18. 18. Quer um livro?• O segundo que fez uma pergunta sobre a palestra acaba de ganhar um :D Pode vir aqui na frente buscar por favor?http://www.urubatan.com.br @urubatan

×