Jeg citerer manualen om ALTER TABLE
:
En USING-klausul skal angives, hvis der ikke er nogen implicit eller assignmentcast fra gammel til ny type.
Det du har brug for er:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int; ALTER TABLE listings ALTER latitude TYPE integer USING latitude::int;
Eller kortere og hurtigere (for store borde) i én kommando:
ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
,ALTER latitude TYPE integer USING latitude::int;
Dette virker med eller uden data så længe alle indtastninger kan konverteres til integer
.
Hvis du har defineret en DEFAULT
for kolonnen, skal du muligvis droppe og genskabe den for den nye type.
Her er en blogartikel om, hvordan du gør dette med ActiveRecord.
Eller følg @mu's råd i kommentaren. Han kender sin Ruby. Jeg er kun god med PostgreSQL her.