关于Heroku错误的RoR Postgresql:PG :: StringDataRightTruncation

时间:2015-05-17 02:44:59

标签: ruby-on-rails postgresql heroku

我有一个ruby on rails项目,允许我提交评论(称为注释)。它似乎在我的计算机上正常工作,我正在使用sql或其他任何有铁轨的库存。

我将应用程序放在heroku之后一切正常,但现在我的笔记超过255个字符会返回错误。

我很确定它与数据库有关,因为在localhost:3000我可以保存数百行文本。

但是我对数据库一无所知 - 有人能指出我正确的方向吗?错误是:

  

PG :: StringDataRightTruncation:错误:类型的值太长   字符变化(255)

这是笔记的迁移,它定义为字符串,而不是字符:

class CreateNotes < ActiveRecord::Migration
  def change
    create_table :notes do |t|
      t.string :title
      t.string :comment
      t.integer :user_id
      t.integer :record_id

      t.timestamps
    end
  end
end

enter image description here

1 个答案:

答案 0 :(得分:1)

您应该使用:文本字段类型,用于包含超过255个字符的属性。

class CreateNotes < ActiveRecord::Migration
  def change
    create_table :notes do |t|
    t.text :title
    t.text :comment
    t.integer :user_id
    t.integer :record_id

    t.timestamps
  end
end

仅当您能够通过执行

重新创建数据库时,此操作才有效
rake db:drop 
rake db:create
rake db:migrate

如果您无法重置数据库,则必须使用

进行新的迁移
def change
  change_column :notes, :title, :text   
  change_column :notes, :comment, :text   
end