Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails heroku db:推掷;Taps服务器错误:未定义的方法“symbol#u键';对于nil:NilClass“;_Ruby On Rails_Heroku_Taps - Fatal编程技术网

Ruby on rails heroku db:推掷;Taps服务器错误:未定义的方法“symbol#u键';对于nil:NilClass“;

Ruby on rails heroku db:推掷;Taps服务器错误:未定义的方法“symbol#u键';对于nil:NilClass“;,ruby-on-rails,heroku,taps,Ruby On Rails,Heroku,Taps,我正在切换到Heroku主机。我在本地机器上有一份当前生产数据库(>100 M)的副本,无法将其推送到heroku 我一次又一次地犯同样的错误: Taps Server Error: undefined method `symbolize_keys' for nil:NilClass 这似乎与数据库中的一些空值(不是全部)有关。有没有办法解决这个问题?谢谢 以下是完整的输出: !!! Caught Server Exception HTTP CODE: 500 Taps Server Erro

我正在切换到Heroku主机。我在本地机器上有一份当前生产数据库(>100 M)的副本,无法将其推送到heroku

我一次又一次地犯同样的错误:

Taps Server Error: undefined method `symbolize_keys' for nil:NilClass
这似乎与数据库中的一些空值(不是全部)有关。有没有办法解决这个问题?谢谢

以下是完整的输出:

!!! 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

当我拼错表列的名称时,出现了这个错误。例如:

create_table "tags", :force => true do |t|
   t.stinrg    "name"
 end
其中名称为
t.stinrg
不正确,应为
t.string
。检查所有整数字段。特别适用于您有
添加列的位置

通常会生成错误的表名,当我
add\u column
将其拼写为
add\u column:tags、:post\u count、:integer

Heroku博客对使用taps将大数据推送到Heroku的策略进行了很好的讨论

  • 要分解作业,请只按特定的表
    heroku db:pull——表、日志、标记

  • 使用崩溃日志文件恢复传输
    heroku db:pull--恢复文件名会话\u file.dat


  • 有关更多信息,请参阅:

    我已仔细检查,我的文件中没有任何打字错误。无论如何,我已经找到了一个解决方法,现在不再需要处理这个错误。谢谢@Codeglot的建议。我对你的解决办法很感兴趣,@Dorian。请您对此发表意见好吗?这意味着您的数据库中有一个列类型拼写错误的表。例如,您有一个
    标记
    表,有一列
    posts\u count
    类型为
    整数
    。如果拼写不正确,您将得到与您得到的错误类似的错误。@Erik,Heroku支持人员建议我不要对大型数据库使用taps,因为它会无缘无故地失败。由于我没有成功地将MySql数据库转换成PostgreSql数据库,所以我只配置了heroku远程访问我的MySql数据库。。。