So we should create a new data migration script in the firstname.lastname@example.org:fuse-infra.git project which does the following:
- Assuming that the latest forge code has been deployed to a new slice called slice2 and the production forge is on a slice called slice1
- Update the httpd config for the fusesource server (the walter or walterdev boxes) so that instead of proxying /forge requests to the forge box, a maintenance page is displayed.
- figure out how to disable git access to slice1 (perhaps disable all authorized keys to the git account)
- All project and database data is copied from slice1 to sclice2 which is basically:
- forum database
- rails app database
- svn repos
- WebDAV repos
- Install all the data to the correct location in slice2
- Some kind of sanity check that the apps are ok (Optional)
- Update httpd config on fuse source server to proxy to the internal ip of the new slice2
So that should basically allow us to switch to the new forge code with minimal downtime. We can test this script in dev until it works. In the production case once the script is run, all that is left to do is to update DNS entries to point to the new server.