这是我如何解决Ubuntu(16.04 LTS)上的问题,其中pg_restore / pg_dump从psql给了我一个旧版本
$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8
$ psql --version
psql (PostgreSQL) 9.5.14
问题是我安装了多个pg版本,而pg_restore指向的是较早版本
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.5 main 5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
解决方法是创建一个指向正确版本的〜/ .postgresqlrc文件。
$ cat ~/.postgresqlrc
9.5 main *
完成此操作后,pg_restore指向正确的版本,命令通过
此处提供了详细信息:https : //serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu
brew upgrade postgresql
brew postgresql-upgrade-database