所以我有一个comments
表,其结构如下:
# == Schema Information
#
# Table name: comments
#
# id :integer not null, primary key
# body :string(255)
# notified :boolean
# user_id :integer
# stage_id :integer
# created_at :datetime
# updated_at :datetime
# client_id :integer
# author :string(255)
这是我收到的错误消息:
ActiveRecord::StatementInvalid (PGError: ERROR: value too long for type character varying(255)
如何使用Rails 3.x和Heroku将长文本存储在PG列中?
解决此问题的迁移会是什么样的?
感谢。
答案 0 :(得分:59)
您需要使用文本而不是字符串。
迁移将有以下几点:
change_column :comments, :body, :text, :limit => nil
答案 1 :(得分:0)
我一直通过这种类型的查询来解决这个问题
ALTER TABLE your_table_name ALTER COLUMN your_column_name TYPE text;
字符变化的长度有限,您无法通过此长度
文字是一个没有限制的变量
因此,您可以将列类型从字符变化(具有长度)转换为文本(没有限制)。