PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Rails миграции:опита се да промени типа на колоната от низ на цяло число

Цитирам ръководството за 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres SELECT, където WHERE е UUID или низ

  2. Фиксиране на дупки/пропуски в числата, генерирани от последователността на Postgres

  3. 2 начина за връщане на редове, които съдържат само буквено-цифрови знаци в PostgreSQL

  4. Предоставяне на привилегии за бъдещи таблици в PostgreSQL?

  5. Опитвам се да копирам файл, но получавам съобщение за грешка