Rails: изменение существующего целочисленного столбца на тип данных массива - PullRequest
0 голосов
/ 14 января 2020

Как мне изменить целочисленный столбец (в котором уже есть значения) на столбец целочисленного массива? Когда я пытаюсь перенести это:

def change
  change_column :cards, :value, :integer, array: true, default: []
end

Я получаю эту ошибку:

PG::DatatypeMismatch: ERROR:  column "value" cannot be cast automatically to type integer[]
HINT:  You might need to specify "USING value::integer[]"

Итак, я попробовал это:

change_column :cards, :value, :integer, array: true, default: [], using: 'value::integer[]'

Затем я получаю эту ошибку:

PG::CannotCoerce: ERROR:  cannot cast type integer to integer[]

1 Ответ

1 голос
/ 14 января 2020

Пройдя по поискам postgres функций приведения и попробовав несколько вещей, которые не сработали, я нашел ответ.

using: 'ARRAY[value]::INTEGER[]'

Намек был близок, но отключен достаточно, чтобы сбить с толку.

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