我试图设置$ PATH来拿起pg_dump的最新版本,因为我目前在我的Rails应用程序(最近我将模式types更改为SQL)中进行迁移时出现不匹配错误。
我在/etc/profile.d中添加了一个名为pg_dump.sh的新文件,并在该文件中:
PG_DUMP=/usr/pgsql-9.1 export PG_DUMP PATH=$PATH:$PG_DUMP/bin export PATH
在看回声$ PATH,我得到:
/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.1/bin:/root/bin
我仍然得到错误。
我需要更改订单吗? 如果有这样的想法如何?
'ls /usr/pgsql-9.1/bin'的输出:
clusterdb droplang pg_archivecleanup pg_ctl pg_standby psql createdb dropuser pg_basebackup pg_dump pg_test_fsync reindexdb createlang ecpg pgbench pg_dumpall pg_upgrade vacuumdb createuser initdb pg_config pg_resetxlog postgres vacuumlo dropdb oid2name pg_controldata pg_restore postmaster
并输出'哪个pg_dump':
/usr/bin/pg_dump
运行上限“部署:迁移”时出现错误消息:
** [out :: 46.4.9.199] pg_dump: server version: 9.1.4; pg_dump version: 8.4.11 ** [out :: 46.4.9.199] pg_dump: aborting because of server version mismatch ** [out :: 46.4.9.199] rake aborted! ** [out :: 46.4.9.199] Error dumping database
'pg_dump –version'的输出:
pg_dump (PostgreSQL) 8.4.11
一个快速和肮脏的解决scheme是编辑/etc/profile.d/pg_dump.sh:
PG_DUMP=/usr/pgsql-9.1 export PG_DUMP PATH=$PG_DUMP/bin:$PATH export PATH
我更喜欢这个解释如何符号链接新版本的答案。 (为方便起见,在下面重印):
您的新版本的pg_dump不在您的PATH中,您只需要删除旧版本,然后将新版本的符号链接到PATH中的任何目录,例如/ usr / bin。
如下所示:
sudo ln -s /actual/new/pg_dump /usr/bin/pg_dump
要find新的pg_dump,您需要知道postgresql安装的位置。 如果你使用自制软件,它是/usr/local/Cellar/postgresql/9.2.2/bin(或者你的版本是什么)