We use Harvest as our source control. Our approach is as follows:
- Developers develop code and place it in Harvest (Dev env.)
- Code is migrated to Test and tested by QA team. They also promote the code to Test env. in Harvest.
- Developers build install BAT files that install into Dev|Test|Staging|Production env. These are placed in Harvest and migrated the same as code.
- After the install scripts are tested by Dev|Team members the code and install BATs are promoted to Staging (BTW install BATs use osql and produce error logs).
- DBA examines the scripts/bat files for anything incorrect. They then run the BAT file and report errors.
- QA\UAT\performance testing is done in Staging with DBA assistance, Profiler, etc..
- Code is promoted to Prod and DBA examines the BAT file and runs it, reports errors.
The process for DBA to install code (minus backups CYA) is about 15 - 30 minutes. All code migrations are done this way and it proves to be quite handy.