Цитирам ръководството за ALTER TABLE
:
Клауза USING трябва да бъде предоставена, ако няма имплицитно или прехвърляне на присвояване от стар към нов тип.
Това, от което се нуждаете, е:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int; ALTER TABLE listings ALTER latitude TYPE integer USING latitude::int;
Или по-кратко и по-бързо (за големи таблици) с една команда:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
,ALTER latitude TYPE integer USING latitude::int;
Товаработи със или без данни стига всички записи да са конвертируеми в integer
.
Ако сте дефинирали DEFAULT
за колоната, може да се наложи да пуснете и да я пресъздадете за новия тип.
Ето статия в блога как да направите това с ActiveRecord.
Или следвайте съвета на @mu в коментара. Той познава своя Рубин. Тук съм добър само с PostgreSQL.