PostgreSQL字符串(255)限制 – Rails,Ruby和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列中?

迁移将如何解决此问题?

谢谢。

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

迁移将有以下几点:

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

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

变化的字符长度有限,你不能通过这个长度。
text是一个没有限制的变量。
因此,您可以将字符类型从变化的字符(具有长度)转换为
文字(没有限制)。