Cómo convertir una columna de tabla a otro tipo de datos

Tengo una columna con el tipo de Varchar en mi base de datos de Postgres que quise ser enteros ... y ahora quiero cambiarlos, desafortunadamente esto no parece funcionar con la migración de mis rieles.

change_column :table1, :columnB, :integer

Lo que parece generar este SQL:

ALTER TABLE table1 ALTER COLUMN columnB TYPE integer

Entonces intenté hacer esto:

execute 'ALTER TABLE table1 ALTER COLUMN columnB TYPE integer USING CAST(columnB AS INTEGER)'

pero la conversión no funciona en esta instancia porque algunas de las columnas son nulas ...

¿algunas ideas?

Error:

PGError: ERROR:  invalid input syntax for integer: ""
: ALTER TABLE table1 ALTER COLUMN columnB TYPE integer USING CAST(columnB AS INTEGER)

Postgres v8.3

Respuestas a la pregunta(2)

Su respuesta a la pregunta