text型のカラムをINTEGER型に変更しようとしたら、エラーが出ました。
ALTER TABLE tbl ALTER COLUMN foo TYPE integer ;
ERROR: column "foo" cannot be cast to type integer
こういう場合は、USING句を使って明示的に型変換してやる必要があるみたいです。
ALTER TABLE tbl ALTER COLUMN foo TYPE integer USING foo::int ;
これでうまく行きました。