So how do you package such a thing in RPM so it can permit both new and old instances to run simultaneously while you do all of this required testing? I suppose these days virtualbox is an almost-reasonable answer
I think this discussion is a reflection of our different environments. :)
On my websites... when 8.3 came out, I downloaded it to a test machine. I then did a dump of the production data from 8.2, and did an import into my 8.3 test machine. After pointing an Apache dev instance at the test database, I could verify that my applications still worked, and make any code changes that were required.
After I had a test/dev environment that was stable under 8.3, I planned the migration: 1. Dump 8.2; 2. Shutdown 8.2 and remove packages; 3. Move 8.2's data directory; 4. Install 8.3 packages, and initdb; 5. Import data made during the dump and start db; 6. Migrate code changes to web server. After things baked for a week and there were no errors, I deleted the old 8.2 data directories.
I realize that this is much more difficult if you're using a VM on a web host that only allows one machine. Is this the type of environment that is constraining you? As long as you can test your application under the new database version to make sure it's OK, the migration can be done on one machine. But let me ask: in what case would you not want to test your application against a new database version?
--Josh