A million little bugs

Sunday, March 9, 2008

Team Foundation Server migration from German (2005) localization to English (2008)

It's now about 3 month ago that i started my odysse with TFS by applying the TFS 2005 SP1 on my production server. Besides the fact, that i've successfully tested the service pack on a cloned testsystem, the installation on the production system went kind of accidantly by the SUS. After the installation i faced some errors relying on the KB940587 that sadly only exists in English.
So, as a Microsoft Gold Partner I am, I called my supporter. He opened the call and a month of excessive telephoning started. The summary of the next weeks was that there was a chance of localizing the patch to German what would took about 2 weeks to 2 month. Because i didn't want to wait and the fact that TFS 2008 is released, I sadly got the answer that there is no supported way to migrate from German to English.
As by now I've seen more of those patches that are only available in English and the fact that new versions and new resources are only available in English too took me at the point to start to migrate from a localized version to the 'real' version and planning on homogenize the network to English only. To eliminate every unnecessary discrepancy, my supporter at last assured me that all new patches will be delivered in all languages at a time.

Ok that's enough story. Here is a quick overview on the steps to migrate and update your localized TFS 2005 to a fresh english 2008 system.
!Warning! Bare in mind that this way is not officialy supported from Microsoft and i will not and can not guarantee that this will help you.

(Customized templates and other customized content does not restore with this kind of migration)
1. Install new TFS 2005 with the installguide from http://go.microsoft.com/fwlink/?LinkId=40042
(Hint: Note that you only can install the TFS on SQL below SP2 - you have to install the sql server with the collation "Latin1_General_CI_AS" - reboot and check the services after each major step)
(Hint2: If you reseted the SQL-DB-Collation you must recreate the RSExecRole in the master and the msdb, sql-script below**)
2. Install GDR-Patch from http://support.microsoft.com/kb/919156
(Hint: Set the recovery-models of the databases and the SQL-server logon-account to a user with domain rights - it can fail identically as the TFS-SP1)
3. Upgrade the TFS to SP1 and bring it to the same state as the old machine
(Hint: if the SP1-setup fails with error 1603, check the iis sites and the SQL-DBs on security-issues)
4. Upgrade the SQL-Server to SP2
5. Run Best-Practice-Analyzer to check if the installation is clean
6. Install the sharepoint patch, so you can restore the database from http://support.microsoft.com/kb/924881
and change the version value of the STS_Content_TFS.dbo.SystemVersion (from in my case it was 6.0.2.8165) to 6.0.2.8117 (optional: same as STS_Config_TFS.dbo.Globals)
7. Restore the datatier with the "restore in a new environment"-guide from http://msdn2.microsoft.com/en-us/library/ms404869(VS.80).aspx
8. Install the inofficial patch 940587
9. Run TFS-localize with the custom DE-EDU mapping (TFSLocalize.exe /s newserver /f TFSLocalizeMapping.xml)
10. Edit the TfsIntegration database, dbo.tbl_registration_extended_attributes table, InstalledUICulture to 1033
11. Edit the STS_Content_TFS database, dbo.Webs and change the Language and the Locale colums to 1033
12. Reboot to play it safe
13. Run upgrade to TFS 2008
14. Check for errors with reportservices and sharepoint
15. Run repair enter license key
16. Optional: restore customized items



**
USE master

GO

GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO RSExecRole

GO

GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO RSExecRole

GO

GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO RSExecRole

GO

USE msdb

GO

-- Permissions for SQL Agent SP's

GRANT EXECUTE ON msdb.dbo.sp_help_category TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_add_category TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_add_job TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_add_jobserver TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_add_jobstep TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_add_jobschedule TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_help_job TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_delete_job TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_help_jobschedule TO RSExecRole

GO

GRANT EXECUTE ON msdb.dbo.sp_verify_job_identifiers TO RSExecRole

GO

GRANT SELECT ON msdb.dbo.sysjobs TO RSExecRole

GO

GRANT SELECT ON msdb.dbo.syscategories TO RSExecRole

GO

1 comment:

RBlackwood said...

Hi,

Thanks for sharing your knowledge and experience. We recently used a TFS tool to accomplish several TFS migrations for our off-shore dev/qa resources. The tool "TFS Data Manager" by a group out of Georgia is really nice. The company is OnePulse, Inc.

We did several full server migrations to bring several new TFS installs up to our current project and entity structure. Now, we did not desire or want to set the off-shore installs to their local language (Indian and Chinese). Nontheless, our tasks would have taken a full day or so. Couldn't want to tie up our resources this long as their time could not be billed against client projects. This tool migrated our TFS projects in no time (10 - 15 minutes). It also does entity-level backup and restores as well.

Robert Blackwood,
Manager, Application Services
Insight Beyond Group
Orlando, Fla, USA
rblackwood@isbgroup.biz