[Postgresql] The migrate library stores the schema version in a "bigint" column, but the library itself only uses Golang's "int" for version number comparison
Cause of Problem This leads to issues, since Golang's "int" datatype can either be 32 bit or 64 bit values. In the case of a 32 bit value "int", the maximum value that can be expressed is only 2147483647 whereas the maximum possible value that can be stored in PostgreSQL's "bigint" data type is 9223372036854775807.
Thus, while version numbers like a "timestamp" (201710021140) can technically be stored by the PostgreSQL migration table, the library itself is incapable of correctly comparing version numbers from the DB and version numbers of the migration scripts when it comes to large numbers (like the aforementioned "timestamps").
Possible Solution Change the data type of version numbers used in the library to "int64" for safety. The convention of "timestamping" migrations is fairly common, and the potential performance hit for a tool of this nature is pretty much insignificant.