Our upgrade from TFS 2005 to TFS 2008 took about 2 weeks from conception to completion. Surprisingly, most of this time was spent trying to get a new VM set up to mirror our existing TFS 2005 environment. VMware’s snapshots are a lifesaver, and made the process so much easier. We simply rolled back over and over until we got it figured out, got the steps documented, and then tested our documented steps. Once we had TFS 2005 up and running on a separate server, upgrading the test server to TFS 2008 was simple and painless. A day of playing with the builds, getting everything compiling, checkins and checkouts, etc. and we could find nothing that didn’t work under TFS 2008, even from a VS2005 client.
So that night we took the plunge and upgraded. 6:30pm rolled around and I confirmed the developers had gone home so I kicked it off. Naturally, what worked over and over in testing did not go so smoothly on Prod. After 20 minutes or so, an error popped up:
Error 32000.The Commandline ‘TfsDb.exe upgrade [blah blah] /showui:590116’ returned non-zero value: 100.
A few googles later, the best I could find was a suggestion to hit “Retry” and pray. After retrying a few times with no success, Profiler revealed that it was failing during the creation of the SQL Server Maintenance Jobs:
— Create the job
@job_name = @adminJobName,
@category_id = 3, — Database maintenance
@description = ‘Performs maintenance on the Microsoft Team Foundation Version Control database.’,
@job_id = @job_id OUTPUT,
@owner_login_name = ‘sa’ — should set owner login name as sa, incase user who runs setup account expires
Microsoft recommends you rename the “sa” account as an added security measure, but then hardcodes “sa” into the TFS upgrade? Renaming our account back to “sa” temporarily for the upgrade resolved this and the rest of the upgrade went off without a hitch.