2011-07-18 15 views
5

Me estoyrechazar empuje en aplicación madura (pre-recibir gancho declinó)

FAILED: http://devcenter.heroku.com/articles/bundler 

! Empuje Heroku rechazado, no se pudo instalar gemas a través de Bundler Para [email protected]: ... ! [Rechazada remota] master -> maestro (pre-recibir gancho declinó) de error: no pudo empujar algunas referencias a ............ .. (ver abajo para el listado completo)

Esta es una aplicación que está trabajando actualmente en heroku, pero heroku no permitirá que git push heroku master actualice el código.

Sin embargo, si clono el código en una nueva carpeta y hago una creación de heroku para crear una nueva aplicación con datos sembrados, la nueva aplicación funciona bien. Sin embargo, no quiero utilizar la nueva aplicación porque tengo datos sobre la aplicación en funcionamiento que deseo que persistan.

Parece haber algo en la aplicación o gemas existente que se resiste a la actualización. No creo que los datos puedan detener la instalación de gemas, así que no sé qué hacer.

Sugerencias?

¿"Empujar Heroku rechazado, no se instaló gemas a través de Bundler" significa que el problema está en actualizar una gema, o es una pista falsa?

Gracias.

$ git push heroku master Contando objetos: 536, hecho. Compresión delta utilizando hasta 2 hilos. Comprimir objetos: 100% (125/125), hecho. Objetos de escritura: 100% (391/391), 1.08 MiB, hecho. total 391 (delta 262), reutilizados 373 (delta 251)

-----> Heroku receiving push 
-----> Removing .DS_Store files 
-----> Rails app detected 
-----> Detected Rails is not set to serve static_assets 
     Installing rails3_serve_static_assets... done 
-----> Configure Rails 3 to disable x-sendfile 
     Installing rails3_disable_x_sendfile... done 
-----> Configure Rails to log to stdout 
     Installing rails_log_stdout... done 
-----> Gemfile detected, running Bundler version 1.0.7 
     Unresolved dependencies detected; Installing... 
     Using --without development:test 
     Windows Gemfile.lock detected, ignoring it. 
     You have modified your Gemfile in development but did not check 
     the resulting snapshot (Gemfile.lock) into version control 
    You have added to the Gemfile: 
    * source: rubygems repository http://rubygems.org/ 
    * rails (= 3.0.5) 
    * haml 
    * haml-rails 
    * sqlite3-ruby 
    * devise (= 1.1.5) 
    * omniauth 
    * declarative_authorization 
    * will_paginate (= 3.0.pre2) 
    * nifty-generators 
    * acts-as-taggable-on 
    * acts_as_commentable 
    * aws-s3 
    * jquery-rails 
    * rspec-rails 
    * annotate 
    * faker (= 0.3.1) 
    * hpricot (= 0.8.3) 
    * ruby_parser 
    * paperclip (~> 2.3) 
    * formtastic (~> 1.2.3) 
    * hirb 
    * kaminari 
    * rspec (= 2.5.0) 
    * webrat 
    * factory_girl_rails (= 1.0) 
    * cucumber 
    * mocha 
    FAILED: http://devcenter.heroku.com/articles/bundler 

! Empuje Heroku rechazado, no se pudo instalar gemas a través de Bundler

Para [email protected]: ... ! [Rechazada remota] master -> maestro (pre-recibir gancho declinó) de error: no se puede empujar algunas referencias a ............ ..

+0

Creo que esta es la clave: 'Windows Gemfile.lock detectado, ignorándolo'. Eche un vistazo a la pregunta "¿Funciona Bundler en Windows?" aquí: http://www.engineyard.com/blog/2011/bundler-pro-tip/. También: http://stackoverflow.com/questions/5954236/why-wont-heroku-accept-my-gemfile-lock-in-windows – matt

+0

@RickHeller por favor, acepte la respuesta de Codeglot, porque obviamente está contento con ella. – opyate

Respuesta

7
You have modified your Gemfile in development but did not check 
the resulting snapshot (Gemfile.lock) into version control 

Esto significa que ha agregado gemas para que Gemfile pero no tienen actualizado a. Gemfile.lock no está sincronizado con este archivo.

Necesita actualizar su paquete.

Ejecutar este comando en la consola en el directorio de tu aplicación: bundle

Después, realice git push heroku

y usted debe ser bueno para ir.

** Destruye la aplicación y vuelve a empezar.

gem install taps #install taps 
heroku db:pull #pull your data to your local machine 

rm -rf .git #remove your git repo 
git init #create a new repo 
git add . #add all the files 
git commit -m 'master' #commit as master 

heroku create #create a new heroku app 
heroku rename myapp #rename the app 
git push heroku master #push to heroku 

heroku db:push #push your data to heroku 

Y eso debería tener una nueva aplicación.

+0

Gracias, pero parece ser más complicado que eso. Quizás algo se haya corrompido. En algún momento, uno de nosotros puso Gemfile.lock en el archivo .gitignore, y eso es probablemente lo que comenzó el problema. Lo que acabo de hacer es eliminar la línea de .gitignore, eliminar Gemfile.lock, ejecutar bundle install para regenerarlo, agregar Gemfile.lock y commit y volver a presionar heroku. Recibo el mismo mensaje. Entonces algo está mal. ¿Hay alguna manera en que pueda decirle a Heroku y a Git que empiecen de cero con las gemas? –

+0

¿Entonces ejecutó 'paquete' y creó el paquete sin errores? – s84

+0

Sí, si ejecuto bundle o bundle install, no obtengo ningún error, ¡y se completa un mensaje como Your bundle! Use 'bundle show [gemname]' para ver dónde está instalada una gema empaquetada. –

0

acabo de tener el mismo problema, y ​​el siguiente fijada por mí:

que tenía una combinación de gemas agrupadas por requerimiento (test, desarrollo, etc.), y algunos que fueron utilizados por tanto, por ejemplo,

group :development do 
    gem "hpricot" 
    gem "ruby_parser" 
    gem "haml-rails", ">= 0.3.4" 
end 

y

gem "rspec-rails", ">= 2.9.0.rc2", :group => [:development, :test] 

He eliminado los de una sola línea, y sólo les duplicado en los bloques correspondientes (no se sequen sé, pero qué diablos).

realizó un paquete rápido, y ¡listo que podría empujar a Heroku nuevo ...

0

que estaba recibiendo el mismo error, y ejecutando el código siguiente en la línea de comandos resuelto:

$ heroku config: set BUNDLE_WITHOUT = "desarrollo: prueba de"


Creo que el Gemfile Los problemas de .lock descritos anteriormente son pistas falsas.