Cytuję instrukcję dotyczącą ALTER TABLE
:
Klauzula USING musi być podana, jeśli nie ma niejawnego ani przypisania przypisania ze starego na nowy typ.
Potrzebujesz:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int; ALTER TABLE listings ALTER latitude TYPE integer USING latitude::int;
Lub krócej i szybciej (dla dużych stołów) za pomocą jednego polecenia:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
,ALTER latitude TYPE integer USING latitude::int;
To działa z danymi lub bez tak długo, jak wszystkie wpisy są konwertowane na integer
.
Jeśli zdefiniowałeś DEFAULT
dla kolumny, może być konieczne usunięcie i ponowne utworzenie tego dla nowego typu.
Oto artykuł na blogu o tym, jak to zrobić z ActiveRecord.
Lub skorzystaj z porady @mu w komentarzu. Zna swojego Rubiego. Jestem dobry tylko z PostgreSQL.