Я установил postgresql через Homebrew.
После обновления у меня возникла следующая проблема:
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 с Homebrew это было так.
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
(этот сценарий создается для вас автоматически в текущем каталоге, когда вы выполняете вышеуказанные шаги)rm delete_old_cluster.sh
Вот как я сделал это на Fedora:
postgresql-setup initdb
это создаст новый каталог данных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 / локальный / var / postgres
После создания БД pg_upgrade работал в моей системе Windows.
Для Arch Linux, Eсть решение в вики это сработало для меня:
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'