TransWikia.com

How to reinstall PostgreSQL over an existing installation

Database Administrators Asked by Bertus Kruger on December 15, 2021

I am trying to upgrade an installer created with NSIS that installs postgresql. It used to install postgresql 8.3 but we want to upgrade the DB to 9.4.4.

The old version on of the DB used to be an MSI installer but they have switched to a Windows EXE with the later version. The old version was able to install over a existing installation. The new version breaks and gives me a very general error that I can’t use to pinpoint the issue.

Error:

The installation directory must be an absolute path, containing only
letters, numbers and the characters ‘-‘, ‘/’, ‘.’ and ‘_’, and must be
writable.

This is my install command:

postgresql-9.4.4-1-windows-x64.exe –prefix “C:postgres” –datadir
“C:postgresdata” –enable_acledit 1 –install_runtimes 0
–serverport 5432 –superpassword “XXXX” –servicepassword “XXXX” –unattendedmodeui minimal –mode unattended –debuglevel 0 –serviceaccount “postgres” –create_shortcuts 0

The Bitrock installer only provides the above error with no path detail or anything to act on.

Any clues or suggestions? (Thanks)

3 Answers

Here is what I discovered...I hope it helps someone: When supplying the directory arguments to the postgres installer command line, do not encapsulate the paths in double quotes. To succeed with custom paths, ensure there are no spaces in the path names, and therefore no need for the double quotes.

Answered by William Gould on December 15, 2021

Actually I've found out the problem. At least at my end with the same error.

I was creating an installer for my software with NSIS and it uses the postgresql database, in order to use the postgresql silent install I previously installed it on the target machine to test which parameters I should use, after tested it successfully I then uninstalled it so it could be installed by my software.

Then problem appears when I run my installer and the same error shows:

The installation directory must be an absolute path, containing only letters, numbers and the characters '-', '/', '.' and '_', and must be writable.

I start to test everything from users, to user permissions, folder permissions, length of folder names.

Then I went to windows registry and found out the my first installation of postgresql left some registries for it even though I uninstalled it from the control panel also it left the postgres user on the machine.

So I delete all postgresql (Edit->find->postgresql) entries from the registry and also deleted the Windows user (postgres) and then everithing works great.

The only problem now is how to do it through the NSIS program.

Hope it helps.

Answered by Jorge Campos on December 15, 2021

Upgrading a PostgreSQL Cluster

Postgres official documentation

I've only ever migrated using pg_dump and pg_restore, which is perfectly acceptable, but the docs also refer you to methods which involve pg_dumpall, pg_upgrade, or via replication.

In general you want to apply one of these approaches since the data format used in successive versions is subject to change.

Answered by Chris on December 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP