Saya mengutip manual tentang ALTER TABLE
:
Klausa USING harus diberikan jika tidak ada implisit atau penugasan dari tipe lama ke tipe baru.
Yang Anda butuhkan adalah:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int; ALTER TABLE listings ALTER latitude TYPE integer USING latitude::int;
Atau lebih pendek dan lebih cepat (untuk tabel besar) dalam satu perintah:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
,ALTER latitude TYPE integer USING latitude::int;
Ini berfungsi dengan atau tanpa data selama semua entri dapat dikonversi ke integer
.
Jika Anda telah menetapkan DEFAULT
untuk kolom, Anda mungkin harus menghapus dan membuatnya ulang untuk tipe baru.
Berikut adalah artikel blog tentang cara melakukan ini dengan ActiveRecord.
Atau ikuti saran @mu di komentar. Dia tahu Ruby-nya. Saya hanya mahir dengan PostgreSQL di sini.