我正在将我的应用程序从使用 SQLite 的 Nitrous.io 转移到使用 Postgres 的 Heroku 进行生产,但出现以下错误。 2 件事,我不明白为什么它不会做 change_column,而且我绝对不明白他们的“暗示”。我怎样才能正确实现?
-- change_column(:messages, :sender, :integer)
PG::DatatypeMismatch: ERROR: column "sender" cannot be cast automatically to type integer
HINT: Specify a USING expression to perform the conversion.
: ALTER TABLE "messages" ALTER COLUMN "sender" TYPE integer
属性是字符串,我想更改为整数以便引用它们。 有什么帮助吗? 下面是我引用的数据库迁移:
class ChangeSenderReceiverToInteger < ActiveRecord::Migration
def change
change_column(:messages, :sender, :integer)
change_column(:messages, :receiver, :integer)
end
end
最佳答案
尝试:
change_column(:messages, :sender, 'integer USING CAST(sender AS integer)')
关于ruby-on-rails - Ruby on Rails 4 - 在 Heroku 上使用 Rake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708415/