【问题标题】:Heroku can't convert String into Integer on migrateHeroku 在迁移时无法将字符串转换为整数
【发布时间】:2018-11-22 23:27:28
【问题描述】:

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

【问题讨论】:

  • 你试过 $ heroku restart, $ heroku pg:reset DATABASE, $ heroku run rake db:migrate ?
  • 这些命令中的每一个都给我同样的错误。
  • 看起来问题出在 Heroku 客户端本身的某个地方。您是否安装了最新的 Heroku 工具?你有比 1.9.3 更新的 Ruby 吗?
  • 我有 ruby​​ 2.4.1p111。我刚刚做了一个 heroku --version 命令并得到了同样的错误。所以可能需要更新。
  • 这是问题所在。一旦我更新到最新版本的 Heroku 工具,它就可以工作了。 @mu 你想创建一个答案,我会接受吗?

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多