Строка PostgreSQL (255) - Rails, Ruby и Heroku - PullRequest
28 голосов
/ 20 марта 2012

Итак, у меня есть таблица 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?

Как будет выглядеть миграция для решения этой проблемы?

Спасибо.

Ответы [ 2 ]

59 голосов
/ 20 марта 2012

Вы должны будете использовать текст вместо строки.

Миграция будет выглядеть примерно так:

change_column :comments, :body, :text, :limit => nil
0 голосов
/ 28 июля 2015

Все время я решаю эту проблему с помощью этого типа запроса
ALTER TABLE your_table_name ALTER COLUMN your_column_name TYPE text;


Длина символа имеет ограниченную длину, и вы не можете передать эту длину.
text - это переменная, которая не имеет ограничений.
Таким образом, вы можете преобразовать тип столбца из символа, изменяющегося (имеющего длину), в текст
(без ограничения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...