Best approach to upgrade TFS 2015 to TFS 2018? - tfs

We currently have TFS set up on three Win2012 servers: app server, build server, deployment server.
It is using SQL Server 2014 which is on a separate server (let's call it SQL1). We have a SQL 2017 server (SQL2) that is not in use but can be used to migrate databases there.
Our plan is to upgrade to TFS 2018. Since TFS 2018 does not support SQL 2017, What is the best approach here?
In-place upgrade TFS 2015 to TFS 2017 (which supports SQL 2014). Then upgrade SQL 2014 to SQL 2017 on SQL1. Once SQL upgrade is done, then we can do another in-place upgrade to TFS 2018.
Migrate existing TFS databases from SQL1 to SQL2 server. Upgrade TFS 2015 directly to 2018 and point to databases on new SQL 2017 server.
Backup SQL1 databases. Upgrade SQL1 to SQL 2017. Restore databases. In-place upgrade TFS 2015 directly to TFS 2018.
What would be the best approach here? Thanks.

I recommend the following:
Spin up fresh Windows 2019 or 2022 servers.
Install SQL Server 2019 on one of 'm.
Install Azure DevOps Servers 2020 or 2022 on the other.
Restore the databases on the SQL server.
Run the configuration wizard on the Azure DevOps Server and have it perform the upgrade.
In most cases this process can run in a couple of hours if you've prepared all the machines and accounts, DNS entries etc.

Related

Team Foundation Server 2015 Upgrade

I have a TFS 2015 installed in a Server.
Now, I want to upgrade it to TFS 2018 i na different Server.
I am planning to install TFS 2018 in the new machine, and than import the database from TFS 2015. This is an alternative to install TFS 2015 in the new machine, and than upgrade it to TFS 2018.
What do you think of my solution? Do you think that by installing TFS 2018 and than using the data in the database of TFS 2015 will let me make the upgrade successfully (Prtojects, Customizations, Configurations)?
I think that if you would like to do something like this, you need to setup the database on the new machine first, import the database of TFS 2015 to that database.
Then install TFS 2018, select that you already have a database and select the imported one.
The upgrade will go through your database and update a lot of different columns and rows, which is why you cannot expect it to work in the way you suggest.

Upgrade from TFS 2013 Update 5 to TFS 2018

I am not aware of any documentation for upgrade of TFS. We are planning with New infra instead of inplace.
What are the pre-requists for same? what utilities i will require to move comeplete data from 2013 to 2018?
Most importantly, if i migrate from 2013 to 2018 will my users will loose all their workitems mappings to test cases in MTM or it will be same?
Upgrade is a full data transfer. You will have all data in the previous TFS.
As TFS 2018 only supports SQL Server 2017 and SQL Server 2016 (minimum SP1), upgrade SQL Server is necessary.
You need to go through article Upgrade your deployment to the latest version of TFS before doing upgrade. And follow the steps in article Upgrade scenario walkthrough for Team Foundation Server to upgrade your TFS. Summarize the steps here:
Prepare your environment. The first step is to check the system
requirements for TFS 2018. Upgrade SQL Server is necessary for your
scenario. Including SQL Server, you also need to check other system
requirements and prepare the environment.
Expect the best, prepare for the worst. You must have a complete and
consistent set of database backups in case something goes wrong.
Do the upgrade. Once the preparation is done, you'll need to install
the new version of TFS to get new binaries, and then run through the
upgrade wizard to upgrade your databases.
Configure new features. Depending on what version you upgraded from,
you may need to configure each team project to gain access to some
of the new features made available.
Here is a useful blog for your reference:
https://blogs.msdn.microsoft.com/rob/2016/12/22/upgrading-from-tfs-2013-to-tfs-2017/
Here are the System Requirements that you would have to cover to be able to upgrade. Some of them for your case are:
Client operating systems:
TFS 2018 Windows 10 (Professional,Enterprise) Version 1607 or greater
TFS 2013 Windows 8.1 (Basic, Professional, Enterprise)
Windows 7 (minimum SP1) (Home Premium, Professional, Enterprise,
Ultimate)
SQL Server:
TFS 2013 Update 4 - SQL Server 2014 or SQL Server 2012 (minimum SP1)
TFS 2018 - SQL Server 2017 or SQL Server 2016 (minimum SP1)
This means that you would have to upgrade your current TFS at least once prior going to TFS 2018. This would include upgrading your SQL Server and change your current OS. The options would be either TFS 2015 Update 3 or later, or TFS 2017 based on your preferences.
To be aware of what's new in the TFS systmes after TFS 2015, you could take a look at TFS page "What's new".
The similar question here: TFS 2012 to TFS 2018 Migration/Upgrade Path.
So you may do upgrade from 2013 to 2018, but you have to consider new requirements for Operating system and SQL Server, deprecated xaml build, new work item form. Any existing links between work items (requirements, tasks, tests) will be same.
In my opinion you can do inplace update if your OS in list with requirements. Detailed steps here: Upgrade to Team Foundation Server (TFS) 2017

Migrate data from TFS 2010 to TFS 2017

I want to migrate TFS data from TFS 2010 (SP 1) that uses SQL Server 2008 R2 to TFS 2017 that uses SQL Server 2016. Is there any way to migrate data from TFS 2010 to TFS 2017?
You cannot upgrade directly from TFS 2010 to TFS 2017, but need to go through TFS 2013 Update 5 (see below).
You can read more here.
I would recommend setting up a new server with SQL Server 2014, where you can migrate your databases using SQL backup. Then first install TFS 2013.5 followed by TFS 2017.2 and finally updating SQL Server to 2016 (See TFS support for SQL Server). I suggest doing a trial migration first to validate that things work and to know how long production downtime is needed for the actual migration.

Can I install two instances (2012 and 2015) of TFS on the same server

We are looking at upgrading, but management does not want to buy another server.
We currently have TFS 2012 installed. Can I install TFS 2015 beside it or will that create a problem?
I would imagine I would at least need to configure a different port for TFS web.
No you cannot. The installer for 2015 will force you to remove the 2012 Application Tier.
Your SQL Server database server will be shareable as long as it's a version that supported by both 2012 and 2015 (SQL Server 2012 (minimum SP1)). And as long as both instances have a different database label configured.

Partial TFS Upgrade

I've running 2013 TFS Server. We have multiple Projects in a single ProjectCollection. However, we just inherited a bunch of projects from a company we just aquired, and they have all thier code in a 2010 TFS server. I need to migrate the projects from this 2010 instance of TFS into our 2013 TFS server.
I've read about doing a complete 2010 migration to 2013, but one of the steps there is to uninstall 2013 and re-install after attaching the databases from the older 2010 server.
Since this isn't an option, as we already have 2013 projects in our 2013 TFS server, I'm wondering what else I can do for this migration.
You should upgrade your 2010 to 2013 before you move the collection across. As you may have version issues with SQL and Windows you might be best using a temporary server that you restore the TFS 2010 databases to and upgrade to 2013.
Once you have upgraded your server to 2013 you can easily detach and attach to your existing server.
You don't need to uninstall TFS 2013, you can attach 2010 to 2013 directly. I suggest you do the following:
Detach TFS 2010 collection using TFS 2010 management console
Backup 2010 collection database using SQL server management studio
Restore this backup on the SQL server which is hosting TFS 2013 server databases
Open TFS 2013 management console and attach 2010 collection to it. This step will perform the upgrade, so once it's done you can start working with this collection on the 2013 server.
Another thing I would suggest is doing this on the test server first.

Resources