Unanswered: Problems with the Windows 8.4.1 upgrade from 8.3 on non-C drive
We have tried this at least with Windows 2008 64-bit server and the problem is very reproducible (multiple systems):
1. Install 8.3 on some non-C drive (say E:\)
2. Run the 8.4.1 installer to upgrade this install
> it appears that the 8.4.1 doesn't realize 8.3 is even installed
Result: Installation fails with a permission problem. It seems certain files from 8.3 are not able to be deleted. When I manually try to delete them, even with the Administrator user, it fails. I ultimately needed to take ownership and then give Full Control before I was allowed to delete them.
There is no problem with this upgrade on the C:\ drive.
You have to dump & restore the database when you upgrade a major version.
Did you maybe point your new installation to the old data directory? That is not going to work.
The 8.4.1 installer will not check for old installs because usually the two versions are installed in parallel to allow a dump & restore
Problems with the Windows 8.4.1 upgrade from 8.3 on non-C drive
Yes you are right. We have a data directory for 8.3 and are attempting to upgrade/overwrite it with the 8.4 installer.
What is odd is that when I run the 8.4 installer and choose a different folder, it works but I also see both Postgres services appear to be started. I guess they are fighting for the port and one is winning but strange Windows would show both as 'Started'.
We have our own software which uses Postgres and the installer works like this:
1. Dump Postgres databases
2. Stop Postgres (8.3 in this case)
3. Run Postgres8.4 installer (same directory postgres/ )
4. Add custom files into postgres directory
5. Start postgres
6. Restore databases
From what you're saying, we would need to have Step 3 put files into a new postgres84 directory and update all of our app to use this new folder.
Another thought was to insert a 'move postgres postgres83' after we stop the Postgres83 process and then let the 8.4 installer run into the original (or really new postgres/ folder).
Any thoughts on what the right approach is for a silent installation?
You need to remove (de-install) the old Postgres 8.3 installation (including removal of the service) between 2 and 3, otherwise it won't work.
As you seem to embedd the postgres installation in your product, why not simply use ZIP file distribution.
All you need to do is:
1) dump the old database
2) stop the old service
3) run 8.3's pg_ctl unregister to remove the old Postgres service
4) Unzip 8.4 into a new directory
5) run 8.4's initdb to initialize the new installation
6) run 8.4's pg_ctl register to install the new service
7) restore the 8.3 dump (can also be done after 5)