我正在尝试将一些数据库更改迁移到我的Heroku应用程序中。我收到一条错误消息,但这并没有真正说明导致它无法迁移的问题。
运行heroku run rake db:migrate --appname
我收到此错误
can't convert String into Integer
.heroku/client/lib/heroku/jsplugin.rb:70:in `[]'
.heroku/client/lib/heroku/jsplugin.rb:70:in `commands'
.heroku/client/lib/heroku/jsplugin.rb:272:in `find_command'
.heroku/client/lib/heroku/jsplugin.rb:23:in `try_takeover'
.heroku/client/lib/heroku/cli.rb:28:in `start'
/usr/local/bin/heroku:24:in `<main>'
! Heroku client internal error.
! Search for help at: https://help.heroku.com
! Or report a bug at: https://github.com/heroku/heroku/issues/new
Error: can't convert String into Integer (TypeError)
Command: heroku run rake db:migrate --appname
Version: heroku-toolbelt/3.43.12 (x86_64-darwin10.8.0) ruby/1.9.3
我虽然可能是因为我使用的是PG,但我将十进制列更改为整数。所以我删除了有问题的专栏,仍然有同样的问题。我也从数据库中删除了所有数据,但还是没有运气。
答案 0 :(得分:4)
在我看来,您有一个旧版本的Heroku客户端(来自heroku-toolbelt 3.43.12)和一个旧版本的Ruby(1.9.3)。 AFAIK heroku-toolbelt甚至不再使用,已被新的Heroku client取代。不再支持Ruby 1.9.3,因此不应使用。
也许您的工具带版本和Ruby的版本彼此不兼容,也许它们与Heroku的当前API不兼容。无论如何,升级到新版本都是一个很好的起点。