I think you are stirring two things, on the one hand is the update of the database engine, that the only way to do it is by doing the corresponding DUMP and inserting it into the new engine.
The best way to do this is to test the migration on a different machine so as not to take risks.
On the other hand you have the structure change of your tables
For this I recommend a manual process.
First Option
One way that can be done is by making separate dumps of structure and data; then modify the structure dump with the required changes and then enter the dumps in the database engine
Second Option
Another can be generating new structures from your existing tables by making CAST in the data that you require.
CREATE TABLE <table_name> AS ( SELECT <campo1>::NUMERIC AS nuevocampo1);
PortgreSQL 9.6 Manual - CREATE TABLE AS
and later when you have all your tables, create all the references and other attributes between your tables.
Third Option
Or using tools that facilitate the export and import of data, I have used this tool and it makes me fabulous
SQL Manager for PortgreSQL