Я рассматриваю возможность обновления Postgres 8.3.3 до 8.4.2 на моем компьютере (на нем Windows Vista).
Установщик Windows (установщик в один клик) для Postgres 8.4.2, который можно загрузить с сайта enterpriseisedb.com, предлагает только новую установку (он не распознает мою текущую установку v8.3.3).
Возможно ли обновление с преобразованием всех существующих баз данных и отображением (автоматическим переносом) в новой версии сразу после обновления? Или мне нужно сделать что-то еще - резервное копирование / восстановление всех баз данных вручную?
Простой ответ: вам нужно pg_dump, установить свежую версию 8.4, а затем загрузить.
Нет такого простого ответа - вы можете использовать pg_migrator для обновления двоичных файлов на месте, но я еще не тестировал его.
Я пробовал pg_migrator и:
Последняя версия (8.4.11) не подходит для моего теста на миграцию - она позволяет перейти на 8.5, но мне нужен переход на 8.4.2.
Performing Consistency Checks
Checking old data directory (c:\program files\postgresql\8.3\data)ok
Checking new data directory (c:\program files\postgresql\8.4\data)ok
This binary was built using 8.5 PostgreSQL sources; it must be
built using 8.4 PostgreSQL sources to match the new cluster.
но ... на домашней странице pg_migrator нет информации о том, какая версия мигратора для какой целевой версии Postgres. Я загрузил и установил v8.4.4, и это кажется подходящей версией, но вот что я говорю:
mapped win32 error code 2 to 2
Old and new pg_controldata date/time storage types do not match.
You will need to rebuild the new server with configure
--disable-integer-datetimes or get server binaries built
with those options.
Так что для меня это не так автоматично. Думаю, старый классический pg_dump / restore подойдет лучше.