Forum Moderators: phranque
Once finished & satisfied, I just upload the mySQL database & any other files I may have changed to my "live" site. No redirecting, no mess.
PS - I do keep my fingers crossed and my heart does beat faster when phpmyadmin is updating the database. Other than that, no sweat.
Also, I use relative file names so it works no matter what domain I test under (usually test.domain.com)
Likewise I take a copy of any MySql tables that have been updated on the live server and that gives me a bit of security if (and it's only happened once) the amended database will not publish or is corrupted.
With regards to our site, we have a development server/DB for "big changes", our site uses a CMS that writes out files to the filesystem rather than serve them dynamically. So when it comes time for an update, we test it, turn off the script that writes out, update the DB, write out to a test area (if we're feelling paranoid), and then turn on the write script again. Takes about 1 to 1 1/2 minutes to write out the whole site. It is possible that users will suffer minor problems during that window, but it's a cost we're willing to live with as we very rarely overhaul the entire site at once.
With regards to redirects, we don't change our filenames so in the case of an update, we don't need to. In the case of a re-organization that forces some path/filename changes, we then use apache redirects, but we try to minimize that as much as reasonable.