When upgrading a field / changing it's type using pgsql:changeField, it's impossible to make a field a serial, bigserial, or numeric. This appears to be because of confusion between the typecast that is required to do the data-conversion and the field-type we are creating. As is currently stands, pgsql:changeField() is forcing serial, bigserial, or numeric to be int.
We found this issue because of this contrib issue: #1657910: Field type update fails in PostgreSQL
Related to this, is that there should better logic around when we need to force explicit casting with a USING statement. It's not always required, and we shouldn't use it unless we need to.