web-dev-qa-db-ja.com

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列に格納するにはどうすればよいですか?

この問題を修正するには、移行はどのようになりますか?

ありがとう。

28
marcamillion

文字列の代わりにテキストを使用する必要があります。

移行は、次のようなものになります。

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

私はいつもこのタイプのクエリでこの問題を解決しています
ALTER TABLE your_table_name ALTER COLUMN your_column_name TYPE text;


文字が変化します長さが制限されているため、この長さを渡すことはできません。
textは制限のない変数です。
したがって、列タイプを文字変化(長さがある)からに変換できます
テキスト(制限はありません)。

0
Harun ERGUL