我通过Homebrew安装了postgresql。
升级后出现以下问题:
FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.1.2.
有关如何升级的任何提示? 我尝试了以下内容:
$ pg_upgrade -d /usr/local/var/postgres/ -D /usr/local/var/postgres -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin
它没有工作。 这是输出。
Performing Consistency Checks Checking current, bin, and data directories ok Checking cluster versions This utility can only upgrade to PostgreSQL version 9.1. Failure, exiting
错误。
对于我在OS X上用自制软件就是这样的。
mv /usr/local/var/postgres /usr/local/var/postgres.old
initdb -D /usr/local/var/postgres
pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin -d /usr/local/var/postgres.old -D /usr/local/var/postgres
./delete_old_cluster.sh
(当您执行上述步骤时,此脚本将自动在当前目录中创build) rm delete_old_cluster.sh
下面是我在Fedora上做的:
postgresql-setup initdb
这将创build一个新的数据目录 pg_upgrade -b /usr/lib64/pgsql/postgresql-9.0/bin/ -B /usr/bin/ -d data.old/ -D data
我认为你会这样做:
pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/bin/ -d /usr/local/var/postgres.old/ -D /usr/local/var/postgres/
我错过了/忘记了“initdb”这一行
initdb -D / usr / local / var / postgres
数据库创build后,pg_upgrade在我的Windows系统上工作。
对于Arch Linux , 在wiki中有一个解决scheme可以很好地工作:
pacman -S --needed postgresql-old-upgrade su - su - postgres -c 'mv /var/lib/postgres/data /var/lib/postgres/data-9.2' su - postgres -c 'mkdir /var/lib/postgres/data' su - postgres -c 'initdb --locale en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data' su - postgres -c 'pg_upgrade -b /opt/pgsql-9.2/bin/ -B /usr/bin/ -d /var/lib/postgres/data-9.2 -D /var/lib/postgres/data'