私は私のイベントモデルの通貨(CCY)の列を持っており、それは現在の文字列ですが、私はそれを整数に変更したいと思います。Herokuの:PG :: InvalidTextRepresentation:ERROR:整数のための無効な入力構文:「」
私のローカル環境で動作しますが、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!= javascript'のように' return'を使うことはできません。 'LocalJumpError:unexpected return'というエラーが発生します。私はあなたが '次を意味すると思う' –
@Зелёныйあなたは正しいです!私は 'next'コマンドに変更しました。 – Wikiti
また、['update_all'](http://apidock.com/rails/v4.0.2/ActiveRecord/Relation/update_all)メソッドのための仕事です。 –