SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Migration de Rail 2.0 ` 2.2
                      a




                              Migration de Rail 2.0 ` 2.2
                                                    a

                                      Cyril Mougel


                                      4 mars 2009
Migration de Rail 2.0 ` 2.2
                      a
 Context




            Context
       1



            Blocage li´ ` Rails 2.1
                      ea
       2



            Am´lioration possible avec Rails 2.1
              e
       3



            Blocage li´ ` Rails 2.2
                      ea
       4



            Am´lioration possible avec Rails 2.2
              e
       5
Migration de Rail 2.0 ` 2.2
                      a
 Context



      Typo 5.1.3




               supporte uniquement Rails 2.0.2
               Pas d’´volution vers Rails 2.1
                     e
               Couverture de code
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.1
           ea




            Context
       1



            Blocage li´ ` Rails 2.1
                      ea
       2



            Am´lioration possible avec Rails 2.1
              e
       3



            Blocage li´ ` Rails 2.2
                      ea
       4



            Am´lioration possible avec Rails 2.2
              e
       5
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.1
           ea



      Mise ` jour du projet
           a




               rake rails :update
               Mise ` jour des fichiers de boot
                    a
               Mise ` jour des fichiers de JS
                    a
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.1
           ea



      Plus de follow redirect dans les test de controlleur




               Impossibilit´ d’utiliser follow redirect dans un
                           e
               Test :: ActionController
               Utilisation uniquement dans les test d’int´gration
                                                         e
               Inutile dans les test d’action
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.1
           ea



      Ce qui est d´pr´ci´ ou supprim´
                  eee               e




        render partial est supprim´ suite ` sa d´pr´cation sur Rails 2.0
                                  e       a     ee
       Utiliser render : partial
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.1
     e




            Context
       1



            Blocage li´ ` Rails 2.1
                      ea
       2



            Am´lioration possible avec Rails 2.1
              e
       3



            Blocage li´ ` Rails 2.2
                      ea
       4



            Am´lioration possible avec Rails 2.2
              e
       5
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.1
     e



      Ajout des .last et .first




       Plus besoin d’´crire find( :first) ou find( :last)
                     e
       Maintenant User.first et User.last fonctionne.
       User . f i n d ( : f i r s t )             User . f i r s t
                                        =¿
       User . f i n d ( : l a s t )               User . l a s t
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.1
     e



      named scope



       n a m ed scope : p u b l i s h e d a r t i c l e s ,
                             : c o n d i t i o n s => { : p u b l i s h e d => t r u e
                             : o r d e r => ’ p u b l i s h e d a t DESC ’

       n a m ed scope : w i t h c h a r , lambda { | ∗ a r g s |
              : c o n d i t i o n s => [ ’ name LIKE ? ’ ,
                                         ”%#{a r g s . f i r s t }%” ]
       }
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.1
     e



      suivi des ´volutions du model
                e




               article.changed ?
               article.name changed ?
               =¿ UPDATE body=’foo’ FROM contents where id=’12’
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.2
           ea




            Context
       1



            Blocage li´ ` Rails 2.1
                      ea
       2



            Am´lioration possible avec Rails 2.1
              e
       3



            Blocage li´ ` Rails 2.2
                      ea
       4



            Am´lioration possible avec Rails 2.2
              e
       5
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.2
           ea



      relative url root en configuration de ActionController




               Le helper link to utilise relative url root
               Avant : utilisait @request.relative url root
               Maintenant : On d´fini directement dans la configuration :
                                  e
               ActionController : :Base.relative url root
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.2
           ea



      Migration dans des transactions




               Si la migration ´choue, pas de mise ` jour de la BDD
                               e                   a
               raise Exception == Migration Failed, mˆme avec rescue
                                                     e
               Eviter tous les cas de Raise.
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.2
           ea



      Chargement des classes de controller avec cache classe
      = true




               en production cache classe = true
               Chargement des classes en m´moire
                                          e
               rake db :migrate RAILS ENV=’production’ charge classe
               si appel ActiveRecord en cache du controller == FAILED
               rescue it
Migration de Rail 2.0 ` 2.2
                      a
 Blocage li´ ` Rails 2.2
           ea



      et des trivialit´s
                      e




               fragment cache store remplacer par cache store
               TextHelper : :truncate prend un seul argument avec :length en
               option. La m´thode avec plusieurs argument DEPRECATED
                            e
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.2
     e




            Context
       1



            Blocage li´ ` Rails 2.1
                      ea
       2



            Am´lioration possible avec Rails 2.1
              e
       3



            Blocage li´ ` Rails 2.2
                      ea
       4



            Am´lioration possible avec Rails 2.2
              e
       5
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.2
     e



      les conditions par Hash




       A r t i c l e . a l l ( : c o n d i t i o n s => {
                       : c r e a t e d a t => 5 . day . ago ,
                       : t a g s => { : name => ’ foo ’ } } )
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.2
     e



      facilit´ de m´moization
             e     e




       Utilisation simple de la m´moization
                                 e

                                              def f i e l d s
      def f i e l d s
                                                @fields = []
                                        =¿
        @ f i e l d s ||= [ ]
                                              end
      end
                                              memoize : f i e l d s
Migration de Rail 2.0 ` 2.2
                      a
 Am´lioration possible avec Rails 2.2
     e




                                        Question ?

Contenu connexe

En vedette (17)

2011 03-09-cloud sgi
2011 03-09-cloud sgi2011 03-09-cloud sgi
2011 03-09-cloud sgi
 
resultados-monitoreo-acceso-info-concejos
resultados-monitoreo-acceso-info-concejosresultados-monitoreo-acceso-info-concejos
resultados-monitoreo-acceso-info-concejos
 
La veille Né Kid du 03.12.08 : Google
La veille Né Kid du 03.12.08 : GoogleLa veille Né Kid du 03.12.08 : Google
La veille Né Kid du 03.12.08 : Google
 
Marimer Nasal Spray for the whole Family
Marimer Nasal Spray for the whole FamilyMarimer Nasal Spray for the whole Family
Marimer Nasal Spray for the whole Family
 
Presentacion propuesta
Presentacion propuestaPresentacion propuesta
Presentacion propuesta
 
Entri
EntriEntri
Entri
 
Estrategias De Salida
Estrategias De SalidaEstrategias De Salida
Estrategias De Salida
 
Bajo que ley
Bajo que leyBajo que ley
Bajo que ley
 
Les botigues
Les botiguesLes botigues
Les botigues
 
Cuestiones y objeciones
Cuestiones y objecionesCuestiones y objeciones
Cuestiones y objeciones
 
Bosquejo
BosquejoBosquejo
Bosquejo
 
El cristo del pueblo
El cristo del puebloEl cristo del pueblo
El cristo del pueblo
 
Perspectivas 2011-2012_Inteligencia de Negocios Atalaya
Perspectivas 2011-2012_Inteligencia de Negocios AtalayaPerspectivas 2011-2012_Inteligencia de Negocios Atalaya
Perspectivas 2011-2012_Inteligencia de Negocios Atalaya
 
Trabajo frances2
Trabajo frances2Trabajo frances2
Trabajo frances2
 
La veille de Né Kid du 07.09.11 : Les représentations du plaisir alimentaire
La veille de Né Kid du 07.09.11 : Les représentations du plaisir alimentaireLa veille de Né Kid du 07.09.11 : Les représentations du plaisir alimentaire
La veille de Né Kid du 07.09.11 : Les représentations du plaisir alimentaire
 
Despertad
DespertadDespertad
Despertad
 
Practica n2
Practica n2Practica n2
Practica n2
 

Plus de Cyril Mougel

Super marmite-pourquoi-choisir-mongodb
Super marmite-pourquoi-choisir-mongodbSuper marmite-pourquoi-choisir-mongodb
Super marmite-pourquoi-choisir-mongodbCyril Mougel
 
Cucumber Le Text Qui Test
Cucumber Le Text Qui TestCucumber Le Text Qui Test
Cucumber Le Text Qui TestCyril Mougel
 
Google Wave, le dernier de chez Google
Google Wave, le dernier de chez GoogleGoogle Wave, le dernier de chez Google
Google Wave, le dernier de chez GoogleCyril Mougel
 
Datamapper L Orm Dans Rails 3
Datamapper L Orm Dans Rails 3Datamapper L Orm Dans Rails 3
Datamapper L Orm Dans Rails 3Cyril Mougel
 
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans RailsMerb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans RailsCyril Mougel
 
Initiation Rails Rspec
Initiation Rails RspecInitiation Rails Rspec
Initiation Rails RspecCyril Mougel
 

Plus de Cyril Mougel (8)

Errbit
ErrbitErrbit
Errbit
 
Mongoid
MongoidMongoid
Mongoid
 
Super marmite-pourquoi-choisir-mongodb
Super marmite-pourquoi-choisir-mongodbSuper marmite-pourquoi-choisir-mongodb
Super marmite-pourquoi-choisir-mongodb
 
Cucumber Le Text Qui Test
Cucumber Le Text Qui TestCucumber Le Text Qui Test
Cucumber Le Text Qui Test
 
Google Wave, le dernier de chez Google
Google Wave, le dernier de chez GoogleGoogle Wave, le dernier de chez Google
Google Wave, le dernier de chez Google
 
Datamapper L Orm Dans Rails 3
Datamapper L Orm Dans Rails 3Datamapper L Orm Dans Rails 3
Datamapper L Orm Dans Rails 3
 
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans RailsMerb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails
 
Initiation Rails Rspec
Initiation Rails RspecInitiation Rails Rspec
Initiation Rails Rspec
 

Migration Rails 2.0 2.2

  • 1. Migration de Rail 2.0 ` 2.2 a Migration de Rail 2.0 ` 2.2 a Cyril Mougel 4 mars 2009
  • 2. Migration de Rail 2.0 ` 2.2 a Context Context 1 Blocage li´ ` Rails 2.1 ea 2 Am´lioration possible avec Rails 2.1 e 3 Blocage li´ ` Rails 2.2 ea 4 Am´lioration possible avec Rails 2.2 e 5
  • 3. Migration de Rail 2.0 ` 2.2 a Context Typo 5.1.3 supporte uniquement Rails 2.0.2 Pas d’´volution vers Rails 2.1 e Couverture de code
  • 4. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.1 ea Context 1 Blocage li´ ` Rails 2.1 ea 2 Am´lioration possible avec Rails 2.1 e 3 Blocage li´ ` Rails 2.2 ea 4 Am´lioration possible avec Rails 2.2 e 5
  • 5. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.1 ea Mise ` jour du projet a rake rails :update Mise ` jour des fichiers de boot a Mise ` jour des fichiers de JS a
  • 6. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.1 ea Plus de follow redirect dans les test de controlleur Impossibilit´ d’utiliser follow redirect dans un e Test :: ActionController Utilisation uniquement dans les test d’int´gration e Inutile dans les test d’action
  • 7. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.1 ea Ce qui est d´pr´ci´ ou supprim´ eee e render partial est supprim´ suite ` sa d´pr´cation sur Rails 2.0 e a ee Utiliser render : partial
  • 8. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.1 e Context 1 Blocage li´ ` Rails 2.1 ea 2 Am´lioration possible avec Rails 2.1 e 3 Blocage li´ ` Rails 2.2 ea 4 Am´lioration possible avec Rails 2.2 e 5
  • 9. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.1 e Ajout des .last et .first Plus besoin d’´crire find( :first) ou find( :last) e Maintenant User.first et User.last fonctionne. User . f i n d ( : f i r s t ) User . f i r s t =¿ User . f i n d ( : l a s t ) User . l a s t
  • 10. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.1 e named scope n a m ed scope : p u b l i s h e d a r t i c l e s , : c o n d i t i o n s => { : p u b l i s h e d => t r u e : o r d e r => ’ p u b l i s h e d a t DESC ’ n a m ed scope : w i t h c h a r , lambda { | ∗ a r g s | : c o n d i t i o n s => [ ’ name LIKE ? ’ , ”%#{a r g s . f i r s t }%” ] }
  • 11. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.1 e suivi des ´volutions du model e article.changed ? article.name changed ? =¿ UPDATE body=’foo’ FROM contents where id=’12’
  • 12. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.2 ea Context 1 Blocage li´ ` Rails 2.1 ea 2 Am´lioration possible avec Rails 2.1 e 3 Blocage li´ ` Rails 2.2 ea 4 Am´lioration possible avec Rails 2.2 e 5
  • 13. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.2 ea relative url root en configuration de ActionController Le helper link to utilise relative url root Avant : utilisait @request.relative url root Maintenant : On d´fini directement dans la configuration : e ActionController : :Base.relative url root
  • 14. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.2 ea Migration dans des transactions Si la migration ´choue, pas de mise ` jour de la BDD e a raise Exception == Migration Failed, mˆme avec rescue e Eviter tous les cas de Raise.
  • 15. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.2 ea Chargement des classes de controller avec cache classe = true en production cache classe = true Chargement des classes en m´moire e rake db :migrate RAILS ENV=’production’ charge classe si appel ActiveRecord en cache du controller == FAILED rescue it
  • 16. Migration de Rail 2.0 ` 2.2 a Blocage li´ ` Rails 2.2 ea et des trivialit´s e fragment cache store remplacer par cache store TextHelper : :truncate prend un seul argument avec :length en option. La m´thode avec plusieurs argument DEPRECATED e
  • 17. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.2 e Context 1 Blocage li´ ` Rails 2.1 ea 2 Am´lioration possible avec Rails 2.1 e 3 Blocage li´ ` Rails 2.2 ea 4 Am´lioration possible avec Rails 2.2 e 5
  • 18. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.2 e les conditions par Hash A r t i c l e . a l l ( : c o n d i t i o n s => { : c r e a t e d a t => 5 . day . ago , : t a g s => { : name => ’ foo ’ } } )
  • 19. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.2 e facilit´ de m´moization e e Utilisation simple de la m´moization e def f i e l d s def f i e l d s @fields = [] =¿ @ f i e l d s ||= [ ] end end memoize : f i e l d s
  • 20. Migration de Rail 2.0 ` 2.2 a Am´lioration possible avec Rails 2.2 e Question ?