2011-09-06 9 views
10

Cuando corro rake db:create:all, estoy recibiendo el siguiente mensaje:“Pila nivel demasiado profundo” corriendo rake db: crear: todo

/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES 
WARNING: Possible conflict with Rake extension: String#ext already exists 
WARNING: Possible conflict with Rake extension: String#pathmap already exists 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/invocation_chain.rb:49: warning: already initialized constant EMPTY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/dsl_definition.rb:143: warning: already initialized constant Commands 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:64: warning: already initialized constant FileList 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:65: warning: already initialized constant RakeFileUtils 
rake aborted! 
stack level too deep 

Y la base de datos no se crea. ¿Alguien me puede ayudar?

Respuesta

24

Encontré una pista en Internet sobre cómo evitar el error. Vea el enlace al "Rail 3.1 and Rake aborted". No se le da ninguna razón, pero usar bundle exec rake en lugar de la llamada de rake puro ha hecho el truco allí. Parece que la convocatoria de rake se está llamando de forma recursiva, sin haber notado que los archivos aún están cargados.

Así que pruébalo y dinos si te funcionó.

+1

Sí, la fuente habitual de problemas de rake es olvidarse de llamarlo por 'bundle exec'. Para aquellos que generalmente se olvidan de las cosas, llamar a 'bundle bash de bundle 'ayudaría. – Arsen7

+1

lamentablemente no funciona – user930538

+0

Esto ayudó. Esto solo funcionó en el rastrillo 12.3.0 después de actualizar desde 10.4.2 pero antes del rastrillo de paquete ya no arroja advertencias en comparación con el rastrillo octoquad

19

Si, como yo, que son demasiado perezosos para utilizar cada vez que bundle:

¿Quieres ver un truco de magia? Intenta ejecutar gem uninstall rake. Confirme cuando se le pregunte sobre dependencias rotas. Contra-intuitivo, lo sé.

Ahora ejecute el comando rake sin bundle exec. ¡Magia!

No sé cómo funciona realmente, pero estoy pensando que tiene algo que ver con sus gemas locales/globales; su rastrillo mundial rvm debe ser el que se está utilizando ahora.

No, esto puede no ser una buena práctica, pero como he dicho, es para los perezosos.

+1

Esto funcionó para mí, me pregunto si tiene algo que ver con tener versiones anteriores de Rieles instalados. – DennyFerra

+0

... Solo para agregar que tuve el mismo problema al usar Rails 3.1.1 en una computadora portátil donde también tenía una versión anterior de los rieles. @jonallard tip resolvió el problema. – microspino

+0

funcionó para mí también. Gracias @jonallard – jn29098

2

He encontrado otra manera de no tener que ejecutar bundle exec cada vez. Para mí, trabajar con Sinatra (no con Rails), agregar gem 'rake' a mi Gemfile funcionaba como un amuleto. :)

0

El comando gem uninstall rake me muestra que tengo varias gemas de rastrillo instaladas, después de quitar 2 de 3 ¡Ya no necesito usar bundle exec!

Cuestiones relacionadas