Estoy terminando de hacer una migration a Rails 2.3 de la app con la que estoy trabajando, resulta que me encontré con el siguiente tema: Luego de instalar rails y migrar la app, llegó el momento de hacer un deploy a staging, entonces me econtré con el siguiente error:
undefined method `reenable' for <Rake::Task db:schema:dump => [environment]>:Rake::Task
googleando un poco llegué a este link que dice que hay que instalar la nueva versión de rake, investigando un poco más, llegué a este PATCH que hace uso del método Rake::Task#reenable, el caso es que este método se agrega e con la versión de rake 0.8.2 y como el pibe dice en el comentario del patch, no hay problemas por que rails 2.3 require rake 0.8.3.... pero que pasa cuando:
1- Instalo rails 2.3 2- Hago un 'rake rails:freeze' 3- hago 'cap staging deploy:migrations'
Y no tengo rails 2.3 instalado en el server y por eso justamente hice un freeze.
Si leemos la task que arma las dependencias de rails:
s.add_dependency('rake', '>= 0.8.3')
s.add_dependency('activesupport', '= 3.0.pre' + PKG_BUILD)
s.add_dependency('activerecord', '= 3.0.pre' + PKG_BUILD)
s.add_dependency('actionpack', '= 3.0.pre' + PKG_BUILD)
s.add_dependency('actionmailer', '= 3.0.pre' + PKG_BUILD)
s.add_dependency('activeresource', '= 3.0.pre' + PKG_BUILD)
uando hacemos el freeze nos copia todas estas cosas menos el rake, lo cual parece razonable. Pero creo debería agregar en config/environment.rb
config.gem "rake", :version => '0.8.3'
Que opinan uds?
Comentarios del archivo (5)
Lucas · 8 de julio de 2009
Me mataste con esto :) Lo que si tengo para recomendar, es que aproveches el HTML y en vez de referencias [N] uses los queridos links :D
Gastón Ramos · 8 de julio de 2009
Sí, tenés razón pero como o copié de un mail que mandé a la lista de ruby-ar, quedó así, y la pereza me mata :)
Gastón Ramos · 8 de julio de 2009
Done!
Luis Lavena · 9 de julio de 2009
Yo opino...
1) no podes freezar Rake en vendor/gems por que el bootstrap de Rails mismo depende de Rake como gema.
Ya que no tenes Rake actualizado en el server, podes poner lo siguiente en el Rakefile de tu aplicacion:
http://pastie.org/539834
Avisame si te sirve.
Gastón Ramos · 9 de julio de 2009
Que buen detalle!, Luis el server ahora lo tengo actualizado, lo que yo quería plantear es como mejorar ese pequeño 'problema' de rails, otra opción podría ser agregar un warning que imprima un mensaje cuando se hace el freeze.
Saludos