我尝试将heroku表列从字符串更改为整数时运行了迁移:这是我的迁移:
class ChangePriceTypeInItems < ActiveRecord::Migration
def change
change_column :items, :price, :integer
end
end
这是我的错误:我该怎么办?
ActiveRecord::StatementInvalid: PG::Error: ERROR: column "price" cannot be cast automatically to type integer
HINT: You might need to specify "USING price::integer".
: ALTER TABLE "items" ALTER COLUMN "price" TYPE integer
其他答案是正确的,但您也可以使用:using
关键字:
change_column :items, :price, :integer, using: 'price::integer'
如果您确定字符串列中的数据可以转换为整数,那么请继续对迁移进行此更改:
change_column :items, :price, 'integer USING CAST(price AS integer)'
使用此代码:
change_column :table_name, :column_name, 'integer USING CAST(column_name AS integer)'
有关更多详细信息,请访问此网站how-to-change-columns-from-string-to-integer