【发布时间】:2016-10-12 13:40:42
【问题描述】:
我的事件模型上有一个货币(ccy)列,它目前是一个字符串,我想将其更改为整数。
虽然它适用于我的本地环境,但当我尝试heroku run rake db:migrate 到heroku 时显示以下错误。
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: ""
: ALTER TABLE "events" ALTER COLUMN "ccy" TYPE integer USING CAST(ccy AS integer)
迁移文件如下。
class ChangeCcyToEvents < ActiveRecord::Migration
def change
change_column :events, :ccy, 'integer USING CAST(ccy AS integer)'
end
end
我发现了类似的问题PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "M",所以我将迁移文件更改如下。但结果是一样的。
class ChangeCcyToEvents < ActiveRecord::Migration
def change
Event.where(ccy: '').update_all(ccy: '')
change_column :events, :ccy, 'integer USING CAST(ccy AS integer)'
end
end
到目前为止,所有ccy 列中都没有值。
如果您能给我任何建议,我们将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 heroku