2011-05-21 8 views

Respuesta

21

Doy gracias a Dobry Den, cheers dude. pero poco más tuve que hacer. aquí está la solución (funciona para mí). había añadido

gem 'rake','0.8.7' 

en Gemfile, que no estaba allí, pero mi nueva versión de rieles instalar automáticamente el rastrillo (0.9.0).

después de haber eliminado rake0.9.0 por gem uninstall rake y después de hacer bundle update rake, puedo crear y migrar la base de datos.

2

Si entiendo lo que usted no está pidiendo, es necesario abrir su archivo Gemfile y cambiar la línea ...

gem 'rake', '0.8.7' 

... a ...

gem 'rake', '0.9.0' 
+0

¿Qué pasa si quiero usar 0.8.7 en lugar de 0,9? – Kir

+5

la gema del rastrillo no está especificada en su Gemfile por defecto, ya que es una dependencia de Rails. si actualizaste la gema de rastrillo a 0.9.0, todavía tienes la gema 0.8.7 en tu sistema (consulta con 'gema lista'). Estoy bastante seguro de que si 'gem 'rake', '0.8.7'' aún se especifica en tu' Gemfile.lock', todavía usará la gema 0.8.7 sin ningún problema. si no, intente ejecutar 'bundle' después de agregar' gem 'rake', '~> 0.8.7'' a su Gemfile (no .lock) y vea si dice algo. – danneu

+0

Estoy de acuerdo con @Dobry Den. –

234

En primer lugar, Verifique para asegurarse de que se menciona rake en su Gemfile. Si no es así, agrégalo y especifica la versión "ya activado".

A continuación, tendrá que indicar a bundle para actualizar la versión del rastrillo se trata de utilizar para su aplicación:

bundle update rake 

Se va a actualizar su Gemfile.lock para usted.

+2

gracias. funcionó para mí – khanh

+2

esto no funcionó para mí. Cuando ejecuto este comando, hace exactamente lo mismo que 'paquete de instalación' y muestra que está usando la misma versión de rake. No lo actualiza. –

+4

Tuve que agregar gem 'rake', 'version #' a mi gemfile y ejecutar 'bundle update rake' para que mi gemfile.lock se actualizara correctamente. FYI para cualquiera que no haya podido lograr que esta solución funcione para ellos. –

36

Dónde está utilizando actualmente comandos rastrillo como

rake db:migrate 

Use este lugar:

bundle exec rake db:migrate 

este será el caso hasta que la última versión de los carriles y/o rastrillo trabajar bien juntos.

+1

El comentario sobre "la última versión de los rieles y/o rake" que funciona bien solo tiene significado en un momento específico, sin nombre, y bajo algunas suposiciones específicas sobre el flujo de trabajo en uso. Creo que esta implicación es "estás usando un borde que se está desangrando, y el rastrillo no ha alcanzado aún". Pero ese caso también puede resolverse con los métodos "bundle exec" o "edit Gemfile", y estos enfoques también resuelven el problema cuando no hay problemas de compatibilidad intrínseca, sino solo un historial de flujo de trabajo confuso. – jackr

+0

Finalmente, alguien ha explicado el mensaje de error. – fabspro

+0

gracias, este es exactamente mi problema – Student22

3

Agregar a su Gemfile

# Rake 0.9.0 break Rails. 
gem "rake", "!= 0.9.0" 

a continuación, desinstale rastrillo-0.9.0

4

he tenido este problema (con otra joya que no fue rastrillo) y yo era capaz de arreglarlo por

gem uninstall <complaining gem> 
gem install <complaining gem> 

bundle install 
bundle update 

Tenga en cuenta que no se utilizó la palabra clave 'sudo' (es decir. Paquete sudo instalar) ya que eso puede colocar su joya en directorios donde su aplicación de rieles podría no estar buscando.

5

Oh, mira, es el futuro. Para mí, me quejaba de que tenía instalado el 10.x de rake cuando quería 0.9.5. No del todo seguro, no lo suficientemente familiarizado con Ruby para cavar realmente en lo que ocurrió con los números de versión recientes, pero lo que hice fue:

gem uninstall rake 
gem install rake -v 0.9.5 

para forzar al sistema a instalar la versión de rake que la aplicación deseado (por yo era Octopress).

+2

El futuro llamado, y quiere tomar prestados sus pantalones de Martillo. –

+0

Hola, es el futuro otra vez. Escuché que los pantalones de Hammer finalmente están regresando. – subdigit

7

Especifique la versión que desee en su Gemfile.

gem 'rake', '0.9.0' 

continuación

bundle update rake 

es necesario utilizar exec paquete para ejecutar su tarea rastrillo

bundle exec rake db:migrate 
Cuestiones relacionadas