PostgreSQL字符串(255)限制 - Rails,Ruby和Heroku

时间:2012-03-20 10:02:06

标签: ruby-on-rails ruby-on-rails-3 postgresql heroku

所以我有一个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列中?

解决此问题的迁移会是什么样的?

感谢。

2 个答案:

答案 0 :(得分:59)

您需要使用文本而不是字符串。

迁移将有以下几点:

change_column :comments, :body, :text, :limit => nil

答案 1 :(得分:0)

我一直通过这种类型的查询来解决这个问题 ALTER TABLE your_table_name ALTER COLUMN your_column_name TYPE text;


字符变化的长度有限,您无法通过此长度 文字是一个没有限制的变量 因此,您可以将列类型从字符变化(具有长度)转换为文本(没有限制)。