2011-08-02 15 views
5

Estoy en el proceso de cambiar a Hosting de Heroku. Tengo en mi máquina local una copia de la base de datos de producción actual (> 100 M) y no puedo enviarla a heroku.heroku db: push throws "Taps Server Error: método indefinido` symbolize_keys 'for nil: NilClass "

estoy recibiendo el mismo error una y otra vez:

Taps Server Error: undefined method `symbolize_keys' for nil:NilClass 

Esto parece estar relacionado con algunos valores NULL en la base de datos (no todos). ¿Alguna idea sobre cómo solucionar este problema? ¡Gracias!

Aquí está la salida completa:

!!! Caught Server Exception 
HTTP CODE: 500 
Taps Server Error: undefined method `symbolize_keys' for nil:NilClass 
/app/lib/taps/data_stream.rb:183:in `parse_json'/app/lib/taps/server.rb:69:in 
POST /sessions/:key/push/verify_stream /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:863:in 
call/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:863:in 
route /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:521:in 
instance_eval /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:521:in 
route_eval /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:500:in 
route!/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:497:in 
catch/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:497:in 
route!/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:476:in 
each/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:476:in 
route!/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:601:in 
dispatch! /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:411:in 
call! /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in 
instance_eval /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in 
invoke/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in 
catch /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in 
invoke /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:411:in 
call!/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:399:in 
call/app/.bundle/gems/ruby/1.8/gems/rack-1.2.1/lib/rack/auth/basic.rb:25:in 
call /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:979:in 
call /app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1005:in 
synchronize/app/.bundle/gems/ruby/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:979:in 
call/home/heroku_rack/lib/static_assets.rb:9:in 
call'/home/heroku_rack /lib/last_access.rb:15:in 
call'/app/.bundle/gems/ruby/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb:47:in 
call'/app/.bundle/gems/ruby/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in 
each'/app/.bundle/gems/ruby/1.8/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in 
call'/home/heroku_rack/lib/date_header.rb:14:in 
call'/app/.bundle/gems/ruby/1.8/gems/rack-1.2.1/lib/rack/builder.rb:77:in 
call'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/connection.rb:76:in   
pre_process'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/connection.rb:74:in 
catch'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/connection.rb:74:in  
pre_process'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/connection.rb:57:in 
process'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/connection.rb:42:in  
receive_data'/app/.bundle/gems/ruby/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in 
run_machine'/app/.bundle/gems/ruby/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in 
run'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/backends/base.rb:57:in 
start'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/server.rb:156:in 
start'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/controllers/controller.rb:80:in 
start'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/runner.rb:177:in 
send'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/runner.rb:177:in 
run_command'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/lib/thin/runner.rb:143:in 
run!'/app/.bundle/gems/ruby/1.8/gems/thin-1.2.7/bin/thin:6/usr/ruby1.8./bin/thin:19:in 
load'/usr/ruby1.8.7/bin/thin:19 

Respuesta

4

el blog Heroku tiene una buena discusión sobre las estrategias para empujar grandes volúmenes de datos a heroku utilizando grifos

  1. para romper el trabajo, sólo empujar tablas específicas
    db heroku: tirar de troncos --tables, etiquetas de transferencia

  2. volver a utilizar el archivo de registro de choque
    heroku db: tire --resume-filename session_file.dat

Para más información ver: http://blog.heroku.com/archives/2010/4/21/supporting_big_data_part_1/

0

Tengo este error cuando lo escribo mal el nombre de una columna de la tabla. Por ejemplo:

create_table "tags", :force => true do |t| 
    t.stinrg "name" 
end 

Donde nombre es t.stinrg es incorrecta y debe ser t.string. Verifica todos tus campos enteros. Speciically de donde se tiene add_column porque los carriles por lo general genera los nombres de las tablas mal y cuando me add_column Escribí bien que como add_column :tags, :post_count, :integer

+0

doble He comprobado y no hay ningún error en mis archivos. De todos modos, he encontrado una solución alternativa y ya no necesito lidiar con este error ahora. Gracias @Codeglot por su sugerencia. – Dorian

+0

Me interesa su solución, @Dorian. ¿Puede comentar al respecto, por favor? –

+0

Significa que en su base de datos tiene una tabla con un tipo de columna incorrectamente escrita. Por ejemplo, tiene una tabla 'Tag' y hay una columna' posts_count' con un tipo 'integer'. Si deletrea este tipo incorrectamente, obtendrá un error similar al que está recibiendo. – s84

Cuestiones relacionadas