I need, as a one-off, to copy data from one table in a PostgreSQL database to the corresponding table in a different database. There’s not that much data: about 2500 rows, 8 columns (some numeric, some varchar).
My first thought was to simply pg_dump -a -t table -f output.file and then pg_restore on another database. However, as it turned out, the versions of pg_dump and the source server do not match – and I have no control over versions, so upgrading is not an option:
pg_dump: server version: 9.1.2; pg_dump version: 9.0.5
pg_dump: aborting because of server version mismatch
Unfortunately, with version 9 of Postgres, option -i (ignore version) is not longer available. I do know what I am doing, but it still wouldn’t let me (naturally).
What other options do I have?
I would use
COPY TOandCOPY FROM. Works in either of the versions and is the optimal tool for this.If you want to use
pg_dump, you have to use the appropriate version. There are separate executables for each version. On Linux you can get the path of the currently used executable withwhich pg_dump.