Team System 2010 introduces the concept of team project collections (TPC). A team project collection is, as it says, a collection of team projects, which can be managed individually. You can backup, move, delete, etc… each collection individually. Each collection will also have its unique work item ids, check sets, etc… Team project collections also change the way team foundation stores its stuff. Before it would use a bunch of databases, now everything connected is stored in a single database. One database per collection. You can easily find the database because it’s called Tfs_<CollectionName>. You ‘ll also find the Tfs_Configuration database containing all configured project collections (and depending on your installation a database for the analysis services).:
Project collections also solve a problem some of you might have encountered; TFS 2008 has an upper limit of 255 team projects. Now with TPC you just add another TPC when you reach the limit (I don’t know the limit of projects per collection, but I would assume it would be around the same…).
A TPC can also easily be moved to another team server/farm, or to another SQL server on the same farm, as long as you keep it on the same type of SQL server (enterprise, express, …). Documentation states you cannot move it to another kind. The way to do this is to first open the Team Foundation Administration Console, and select the Team Projects Collections tree item. To the right you should see all your TPCs.
Here you can also create new TPC's, but that should be obvious.
So to move a TPC you should first stop the collection. You’ll be asked for a reason:
And then you detach the collection:
Next you go through a verification step:
And then you click Complete:
Now the TPC is no longer connected to TFS, but is still there in SQL server.
So now you detach the database in SQL server, move it to another SQL server or TFS farm. You might first need to restart a couple of services, such as the build service.
So after attaching the database in SQL server, we now need to attach the database to TFS; go back to Team Foundation Administration Console, and click the “Attach Collection” button. Now choose your SQL server instance, and you’ll see all candidate databases:
Hit Next if you want to change properties such as the name/description:
And next again to see an overview.
So complete attaching, hit Verify to make sure everything is in order:
And then hit attach.
Eh voila!
Now the TPC should be in the list:
You can also split the projects in a single TPC to multiple TPCs (but not merge them, so be careful), but that will be for a later post.