Ответ 1
Вам нужно будет использовать текст вместо строки.
Миграция будет чем-то вроде:
change_column :comments, :body, :text, :limit => nil
Итак, у меня есть таблица 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)
Как хранить длинный текст в столбце PG с помощью Rails 3.x и Heroku?
Как бы выглядела миграция, чтобы исправить эту проблему?
Спасибо.
Вам нужно будет использовать текст вместо строки.
Миграция будет чем-то вроде:
change_column :comments, :body, :text, :limit => nil
Все время я решаю эту проблему с помощью этого типа запроса ALTER TABLE your_table_name ALTER COLUMN your_column_name TYPE text;
Знак имеет ограниченную длину, и вы не можете передать эту длину.
текст - это переменная, которая не имеет ограничений.
Таким образом, вы можете преобразовать свой тип столбца из символа, меняющегося (который имеет длину), в текст текста (который не имеет ограничений).