ruby-on-rails - Ruby on Rails 4 - 在 Heroku 上使用 Rake

标签 ruby-on-rails postgresql heroku

我正在将我的应用程序从使用 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)')

引用:http://makandracards.com/makandra/18691-postgresql-vs-rails-migration-how-to-change-columns-from-string-to-integer

关于ruby-on-rails - Ruby on Rails 4 - 在 Heroku 上使用 Rake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708415/

相关文章:

ruby-on-rails - 从 Sqlite3 迁移到 PostgreSQL Rails

ruby-on-rails - 如何在 heroku 中重命名 postgres 数据库

ruby-on-rails - 铁路应用程序有带有评论的博客

ruby-on-rails - 在 ruby​​ on rails 中嵌套三层深度资源

javascript - 如何在 Rails 中安装 masonry 或其他 javascript? (不使用 gem )

ruby-on-rails - 我的 Rails 控制台不断崩溃

postgresql - 如何在 PostgreSQL 中恢复集群备份?

postgresql - Postgres 按列名删除约束

postgresql - 杂散换行破坏转储/恢复时的源代码

ssl - 购买证书的 Heroku SSL 端点似乎不起作用