Heroku无法在迁移时将String转换为Integer

时间:2018-11-22 23:27:29

标签: ruby-on-rails heroku ruby-on-rails-5

我正在尝试将一些数据库更改迁移到我的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,但我将十进制列更改为整数。所以我删除了有问题的专栏,仍然有同样的问题。我也从数据库中删除了所有数据,但还是没有运气。

1 个答案:

答案 0 :(得分:4)

在我看来,您有一个旧版本的Heroku客户端(来自heroku-toolbelt 3.43.12)和一个旧版本的Ruby(1.9.3)。 AFAIK heroku-toolbelt甚至不再使用,已被新的Heroku client取代。不再支持Ruby 1.9.3,因此不应使用。

也许您的工具带版本和Ruby的版本彼此不兼容,也许它们与Heroku的当前API不兼容。无论如何,升级到新版本都是一个很好的起点。